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 相关文章推荐
在WAMP环境下搭建ZendDebugger php调试工具的方法
Jul 18 PHP
PHP APC的安装与使用详解
Jun 13 PHP
PHP 关于访问控制的和运算符优先级介绍
Jul 08 PHP
PHP防范SQL注入的具体方法详解(测试通过)
May 09 PHP
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
Aug 18 PHP
我整理的PHP 7.0主要新特性
Jan 07 PHP
php curl中gzip的压缩性能测试实例分析
Nov 08 PHP
PHP获取数组中单列值的方法
Jun 10 PHP
PHP基于GD库实现的生成图片缩略图函数示例
Jul 05 PHP
PHP超低内存遍历目录文件和读取超大文件的方法
May 01 PHP
基于laravel Request的所有方法详解
Sep 29 PHP
PHP Swoole异步读取、写入文件操作示例
Oct 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
PHP新手上路(十四)
2006/10/09 PHP
php简单统计在线人数的方法
2016/05/10 PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
2017/09/28 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
jQuery Flash/MP3/Video多媒体插件
2010/01/18 Javascript
12款经典的白富美型—jquery图片轮播插件—前端开发必备
2013/01/08 Javascript
分享自己用JS做的扫雷小游戏
2016/02/17 Javascript
如何用js实现鼠标向上滚动时浮动导航
2016/07/18 Javascript
js实现为a标签添加事件的方法(使用闭包循环)
2016/08/02 Javascript
纯js仿淘宝京东商品放大镜功能
2017/03/02 Javascript
JS二叉树的简单实现方法示例
2017/04/05 Javascript
React+react-dropzone+node.js实现图片上传的示例代码
2017/08/23 Javascript
手写Node静态资源服务器的实现方法
2018/03/20 Javascript
React Hooks的深入理解与使用
2018/11/12 Javascript
js实现div色块拖动录制
2020/01/16 Javascript
JavaScript undefined及null区别实例解析
2020/07/21 Javascript
[05:20]卡尔工作室_DOTA2新手教学_DOTA2超强新手功能
2013/04/22 DOTA
[01:05:36]VP vs TNC Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
python进程类subprocess的一些操作方法例子
2014/11/22 Python
Python3 能振兴 Python的原因分析
2014/11/28 Python
python继承和抽象类的实现方法
2015/01/14 Python
Python下实现的RSA加密/解密及签名/验证功能示例
2017/07/17 Python
Python字符串和字典相关操作的实例详解
2017/09/23 Python
python3使用QQ邮箱发送邮件
2020/05/20 Python
Django中多种重定向方法使用详解
2019/07/17 Python
python读写csv文件的方法
2019/08/13 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
2020/12/04 Python
使用Html5多媒体实现微信语音功能
2019/07/26 HTML / CSS
领先的英国注册在线药房 :Simply Meds Online
2019/03/28 全球购物
经理职责范文
2013/11/08 职场文书
销售文员的岗位职责
2013/11/20 职场文书
机修工岗位职责
2013/11/24 职场文书
食品安全责任书
2014/04/15 职场文书
教育见习报告范文
2014/11/03 职场文书
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python
Redis集群节点通信过程/原理流程分析
2022/03/18 Redis