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 相关文章推荐
基于文本的访客签到簿
Oct 09 PHP
php网页后退不再出现过期
Mar 08 PHP
PHP has encountered an Access Violation at 7C94BD02解决方法
Aug 24 PHP
Memcached常用命令以及使用说明详解
Jun 27 PHP
PHP操作MySQL事务实例
Nov 05 PHP
PHP生成RSS文件类实例
Dec 05 PHP
PHP获取当前日期及本周一是几月几号的方法
Mar 28 PHP
浅谈ThinkPHP中initialize和construct的区别
Apr 01 PHP
php 查找数组元素提高效率的方法详解
May 05 PHP
全面解析PHP面向对象的三大特征
Jun 10 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
Sep 26 PHP
PHP分享图片的生成方法
Apr 25 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
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
2006/10/09 PHP
PHP jQuery+Ajax结合写批量删除功能
2017/05/19 PHP
PHP实现的回溯算法示例
2017/08/15 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
FileUpload上传图片(图片不变形)
2010/08/05 Javascript
javascript数据结构与算法之检索算法
2015/04/04 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
2015/08/07 Javascript
tuzhu_req.js 实现仿百度图片首页效果
2015/08/11 Javascript
JavaScript设置表单上传时文件个数的方法
2015/08/11 Javascript
Javascript 普通函数和构造函数的区别
2016/11/05 Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
2017/02/12 Javascript
Vue2.0系列之过滤器的使用
2018/03/01 Javascript
详解ES6 Symbol 的用途
2018/10/14 Javascript
微信小程序时间控件picker view使用详解
2018/12/28 Javascript
[01:56]林书豪DOTA2上海特级锦标赛励志短片
2016/03/05 DOTA
[01:29]2017 DOTA2国际邀请赛官方英雄手办展示
2017/03/18 DOTA
[44:50]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 TNC vs VG
2018/04/02 DOTA
Python3基础之list列表实例解析
2014/08/13 Python
Python中的列表生成式与生成器学习教程
2016/03/13 Python
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
Python 字符串换行的多种方式
2018/09/06 Python
PyQt5 对图片进行缩放的实例
2019/06/18 Python
OpenCV+Python--RGB转HSI的实现
2019/11/27 Python
jupyter notebook参数化运行python方式
2020/04/10 Python
Python基于callable函数检测对象是否可被调用
2020/10/16 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
2021/02/22 Python
美国领先的个性化礼品商城:Personalization Mall
2019/07/27 全球购物
私人委托书格式
2014/09/10 职场文书
2014年作风建设剖析材料
2014/10/23 职场文书
2014年幼儿园园务工作总结
2014/12/05 职场文书
2015年服务员工作总结
2015/04/08 职场文书
行政司机岗位职责
2015/04/10 职场文书
社区扶贫帮困工作总结
2015/05/20 职场文书
python 安全地删除列表元素的方法
2022/03/16 Python
mysql的单列多值存储实例详解
2022/04/05 MySQL
使用Nginx+Tomcat实现负载均衡的全过程
2022/05/30 Servers