php结合mysql与mysqli扩展处理事务的方法


Posted in PHP onJune 29, 2016

本文实例讲述了php结合mysql与mysqli扩展处理事务的方法。分享给大家供大家参考,具体如下:

以下只是展示如何应用,具体用的时候要加上判断,如果都执行成功则提交,否则回滚

看前先分清mysqli与mysql扩展是不一样的

mysqli扩展处理事物:

$mysqli=new mysqli('localhost','root','123456','test');
$mysqli->autocommit(false);//开始事物
$query="update a set money=money+30 where a_id='1'";
$mysqli->query($query);
$query="update b set money=money-30 where b_id='1'";
$mysqli->query($query);
//$mysqli->rollback();//回滚
$mysqli->commit();   //提交事物
$mysqli->autocommit(true);//不使用事物

mysql扩展处理事物:

<?php
mysql_connect('localhost','root','123456');
mysql_select_db('test');
mysql_query('SET AUTOCOMMIT=0'); //不自动提交
mysql_query('BEGIN');       //开始事务
$query="UPDATE a SET money = money +30 WHERE a_id =1";
mysql_query($query);
$query="UPDATE b SET money = money -30 WHERE b_id =1";
mysql_query($query);
mysql_query('COMMIT');       //提交
//mysql_query('ROLLBACK');     //回滚
mysql_query('SET AUTOCOMMIT=1'); //打开自动提交
?>

对mysql扩展处理事务的说明,原文可参考本站:

MYSQL的事务处理主要有两种方法。

1、用begin,rollback,commit来实现

begin 开始一个事务
rollback 事务回滚
commit    事务确认

2、直接用set来改变mysql的自动提交模式

MYSQL默认是自动提交的,也就是你提交一个QUERY,它就直接执行!我们可以通过:

set autocommit=0  禁止自动提交
set autocommit=1 开启自动提交

来实现事务的处理。

但注意当你用 set autocommit=0 的时候,你以后所有的SQL都将做为事务处理,直到你用commit确认或rollback结束,注意当你结束这个事务的同时也开启了个新的事务!按第一种方法只将当前的作为一个事务!

个人推荐使用第一种方法!

MYSQL中只有INNODB和BDB类型的数据表才能支持事务处理!其他的类型是不支持的!(切记!)

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP.MVC的模板标签系统(二)
Sep 05 PHP
php htmlspecialchars加强版
Feb 16 PHP
腾讯QQ php程序员面试题目整理
Jun 08 PHP
php excel类 phpExcel使用方法介绍
Aug 21 PHP
PHP执行zip与rar解压缩方法实现代码
Dec 05 PHP
php 操作数组(合并,拆分,追加,查找,删除等)
Jul 20 PHP
php检测iis环境是否支持htaccess的方法
Feb 18 PHP
Thinkphp将二维数组变为标签适用的一维数组方法总结
Oct 30 PHP
thinkphp配置文件路径的实现方法
Aug 30 PHP
PHP集成环境XAMPP的安装与配置
Nov 13 PHP
PHP如何通过表单直接提交大文件详解
Jan 08 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
Jul 24 PHP
php简单解析mysqli查询结果的方法(2种方法)
Jun 29 #PHP
php mysqli查询语句返回值类型实例分析
Jun 29 #PHP
thinkphp框架实现数据添加和显示功能
Jun 29 #PHP
thinkphp框架实现删除和批量删除
Jun 29 #PHP
浅谈PHP值mysql操作类
Jun 29 #PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
Jun 28 #PHP
php 在字符串指定位置插入新字符的简单实现
Jun 28 #PHP
You might like
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
作为PHP程序员你要知道的另外一种日志
2018/07/30 PHP
Tab页界面,用jQuery及Ajax技术实现
2009/09/21 Javascript
javascript 模式设计之工厂模式详细说明
2010/05/10 Javascript
JavaScript实现网页上的浮动广告的简单方法
2013/06/14 Javascript
showModelDialog弹出文件下载窗口的使用示例
2013/11/19 Javascript
jquery滚动特效集锦
2015/06/03 Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
2015/10/08 Javascript
使用jquery提交form表单并自定义action的实现代码
2016/05/25 Javascript
深入理解JavaScript中的预解析
2017/01/04 Javascript
JS实现的tab切换选项卡效果示例
2017/02/28 Javascript
老生常谈jquery中detach()和remove()的区别
2017/03/02 Javascript
详解Node.js中exports和module.exports的区别
2017/04/19 Javascript
浅谈NodeJs之数据库异常处理
2017/10/25 NodeJs
简述ES6新增关键字let与var的区别
2019/08/23 Javascript
vue.js+ElementUI实现进度条提示密码强度效果
2020/01/18 Javascript
JavaScript实现单点登录的示例
2020/09/23 Javascript
Vue 实现拨打电话操作
2020/11/16 Javascript
javascript实现随机抽奖功能
2020/12/30 Javascript
[01:56]生活中的妖精之七夕特别档
2016/08/09 DOTA
qpython3 读取安卓lastpass Cookies
2016/06/19 Python
python: 判断tuple、list、dict是否为空的方法
2018/10/22 Python
python and or用法详解
2019/06/26 Python
python 实现多维数组转向量
2019/11/30 Python
Django集成celery发送异步邮件实例
2019/12/17 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
2020/01/06 Python
Python定时从Mysql提取数据存入Redis的实现
2020/05/03 Python
Django权限设置及验证方式
2020/05/13 Python
Python第三方包PrettyTable安装及用法解析
2020/07/08 Python
CSS3 透明色 RGBA使用介绍
2013/08/06 HTML / CSS
公共汽车、火车和飞机票的通用在线预订和销售平台:INFOBUS
2019/11/30 全球购物
ORLY官网:美国专业美甲一线品牌
2019/12/11 全球购物
zooplus德国:便宜地订购动物用品、动物饲料、动物食品
2020/05/06 全球购物
物业经理求职自我评价
2013/09/22 职场文书
学雷锋月活动总结
2014/04/25 职场文书
2016年党员干部公开承诺书
2016/03/24 职场文书