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 相关文章推荐
PHP4和PHP5性能测试和对比 测试代码与环境
Aug 17 PHP
pw的一个放后门的方法分析
Oct 08 PHP
实用函数3
Nov 08 PHP
php 文件上传类代码
Aug 06 PHP
微信公众平台之快递查询功能用法实例
Apr 14 PHP
如何解决phpmyadmin导入数据库文件最大限制2048KB
Oct 09 PHP
PHP页面跳转操作实例分析(header方法)
Sep 28 PHP
php中__toString()方法用法示例
Dec 07 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
Mar 13 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
Nov 06 PHP
php插入mysql数据返回id的方法
May 31 PHP
PHP实现可精确验证身份证号码的工具类示例
May 31 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脚本中include文件出错解决方法
2008/11/20 PHP
解析PHP计算页面执行时间的实现代码
2013/06/18 PHP
codeigniter中实现一次性加载多个view的方法
2015/03/20 PHP
php取出数组单个值的方法
2018/03/12 PHP
PHP简单实现记录网站访问量功能示例
2018/06/06 PHP
Javascript里使用Dom操作Xml
2007/01/22 Javascript
javascript 设为首页与加入收藏兼容多浏览器代码
2011/01/11 Javascript
Javascript 遮罩层和加载效果代码
2013/08/01 Javascript
JS小功能(offsetLeft实现图片滚动效果)实例代码
2013/11/28 Javascript
jquery如何获取复选框的值
2013/12/12 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
使用NodeJs 开发微信公众号(三)微信事件交互实例
2016/03/02 NodeJs
AngularJS入门教程之过滤器详解
2016/08/19 Javascript
微信小程序 基础组件与导航组件详细介绍
2017/02/21 Javascript
Node使用Sequlize连接Mysql报错:Access denied for user ‘xxx’@‘localhost’
2018/01/03 Javascript
详解vue-meta如何让你更优雅的管理头部标签
2018/01/18 Javascript
vue如何在自定义组件中使用v-model
2018/05/14 Javascript
微信小程序swiper禁止用户手动滑动代码实例
2019/08/23 Javascript
vue服务端渲染操作简单入门实例分析
2019/08/28 Javascript
JS localStorage存储对象,sessionStorage存储数组对象操作示例
2020/02/15 Javascript
python妹子图简单爬虫实例
2015/07/07 Python
python实现多线程的两种方式
2016/05/22 Python
Python常见的pandas用法demo示例
2019/03/16 Python
Django中间件基础用法详解
2019/07/18 Python
python如何使用Redis构建分布式锁
2020/01/16 Python
pycharm 实现本地写代码,服务器运行的操作
2020/06/08 Python
Selenium 安装和简单使用的实现
2020/12/04 Python
Tretorn美国官网:瑞典外套和鞋类品牌,抵御风雨
2018/07/19 全球购物
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
企业员工培训感言
2014/02/26 职场文书
幼儿园大班家长评语
2014/04/17 职场文书
银行求职信
2014/05/31 职场文书
个人作风建设心得体会
2014/10/22 职场文书
2015年会计年终工作总结
2015/05/26 职场文书
python文件目录操作之os模块
2021/05/08 Python
详解Java七大阻塞队列之SynchronousQueue
2021/09/04 Java/Android