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 相关文章推荐
定制404错误页面,并发信给管理员的程序
Oct 09 PHP
PHP入门
Oct 09 PHP
php下删除一篇文章生成的多个静态页面
Aug 08 PHP
适用于php-5.2 的 php.ini 中文版[金步国翻译]
Apr 17 PHP
php skymvc 一款轻量、简单的php
Jun 28 PHP
PHP实现手机归属地查询API接口实现代码
Aug 27 PHP
php页面缓存ob系列函数介绍
Oct 18 PHP
php中读写文件与读写数据库的效率比较分享
Oct 19 PHP
php查询mysql数据库并将结果保存到数组的方法
Mar 18 PHP
学习php设计模式 php实现状态模式
Dec 07 PHP
一次因composer错误使用引发的问题与解决
Mar 06 PHP
Yii 使用intervention/image拓展实现图像处理功能
Jun 22 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
php字符编码转换之gb2312转为utf8
2013/10/28 PHP
TopList标签和JavaScript结合两例
2007/08/12 Javascript
google地图的路线实现代码
2009/08/20 Javascript
有效的捕获JavaScript焦点的方法小结
2009/10/08 Javascript
JavaScript Scoping and Hoisting 翻译
2012/07/03 Javascript
php常见的页面跳转方法汇总
2015/04/15 Javascript
JavaScript转换二进制编码为ASCII码的方法
2015/04/16 Javascript
JavaScript继承学习笔记【新手必看】
2016/05/10 Javascript
简单实现的JQuery文本框水印插件
2016/06/14 Javascript
JavaScript函数中关于valueOf和toString的理解
2016/06/14 Javascript
简易Vue评论框架的实现(父组件的实现)
2018/01/08 Javascript
JS实现点击拉拽轮播图pc端移动端适配
2018/09/05 Javascript
node上的redis调用优化示例详解
2018/10/30 Javascript
Nuxt使用Vuex的方法示例
2019/09/06 Javascript
python下os模块强大的重命名方法renames详解
2017/03/07 Python
Python利用Beautiful Soup模块修改内容方法示例
2017/03/27 Python
Python有序字典简单实现方法示例
2017/09/28 Python
Python实现PS滤镜功能之波浪特效示例
2018/01/26 Python
PyQt5每天必学之滑块控件QSlider
2018/04/20 Python
python单例模式获取IP代理的方法详解
2018/09/13 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
Django自带的加密算法及加密模块详解
2019/12/03 Python
python如何删除文件、目录
2020/06/23 Python
Matplotlib中rcParams使用方法
2021/01/05 Python
CSS3 :not()选择器实现最后一行li去除某种css样式
2016/10/19 HTML / CSS
使用html5实现表格实现标题合并的实例代码
2019/05/13 HTML / CSS
英国Zoro工具:手动工具,电动工具和个人防护用品
2016/11/02 全球购物
俄罗斯的精英皮具:Wittchen
2018/01/29 全球购物
美国在线宠物商店:Chewy
2019/01/12 全球购物
多媒体教室标语
2014/06/26 职场文书
党的生日演讲稿
2014/09/10 职场文书
党支部组织生活会整改方案
2014/09/30 职场文书
经理助理岗位职责
2015/02/02 职场文书
检讨书范文大全
2015/05/07 职场文书
25张裸眼3D图片,带你重温童年的记忆,感受3D的魅力
2022/02/06 杂记
Nginx如何配置根据路径转发详解
2022/07/23 Servers