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中利用XML技术构造远程服务(上)
Oct 09 PHP
在服务端进行目录建立、删除,文件上传、删除的过程的php代码
Sep 10 PHP
php设计模式 Composite (组合模式)
Jun 26 PHP
PHP数组排序函数合集 以及它们之间的联系分析
Jun 27 PHP
WordPress自定义时间显示格式
Mar 27 PHP
Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法
May 31 PHP
PHP类型约束用法示例
Sep 28 PHP
PHP单例模式定义与使用实例详解
Feb 06 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
Feb 10 PHP
PHP PDOStatement::bindParam讲解
Jan 30 PHP
laravel批量生成假数据的方法
Oct 09 PHP
laravel框架中表单请求类型和CSRF防护实例分析
Nov 23 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
咖啡冲泡指南 咖啡有哪些制作方式 单品咖啡 意式咖啡
2021/03/06 冲泡冲煮
推荐Discuz!5的PHP代码高亮显示与实现可运行代码
2007/03/15 PHP
php自动加载机制的深入分析
2013/06/08 PHP
php中引用符号(&amp;)的使用详解
2013/11/13 PHP
利用PHP判断是否是连乘数字串的方法示例
2017/07/03 PHP
laravel5.1框架model类查询的实现方法
2019/10/08 PHP
JavaScript 学习笔记(五)
2009/12/31 Javascript
JavaScript避免内存泄露及内存管理技巧
2014/09/05 Javascript
jQuery插件Flexslider实现图片轮播、图文结合滑动切换效果
2020/04/16 Javascript
Bootstrap实现带动画过渡的弹出框
2016/08/09 Javascript
深入理解Node.js 事件循环和回调函数
2016/11/02 Javascript
js querySelector() 使用方法
2016/12/21 Javascript
node.js调用Chrome浏览器打开链接地址的方法
2017/05/17 Javascript
AngularJs每天学习之总体介绍
2017/08/07 Javascript
bootstrap table实现x-editable的行单元格编辑及解决数据Empty和支持多样式问题
2017/08/10 Javascript
JavaScript实现构造json数组的方法分析
2018/08/17 Javascript
js判断浏览器的环境(pc端,移动端,还是微信浏览器)
2020/12/24 Javascript
jquery实现轮播图特效
2020/04/12 jQuery
[56:21]LGD vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
教你用python3根据关键词爬取百度百科的内容
2016/08/18 Python
Numpy的简单用法小结
2019/08/28 Python
Python matplotlib生成图片背景透明的示例代码
2019/08/30 Python
Python使用指定字符长度切分数据示例
2019/12/05 Python
python读取ini配置文件过程示范
2019/12/23 Python
Html5 滚动穿透的方法
2019/05/13 HTML / CSS
Amara美国站:英国高端家居礼品网站,世界各地的奢侈家具品牌
2017/07/26 全球购物
美国马匹用品和骑马配件购物网站:Horse.com
2018/01/08 全球购物
yy婚礼主持词
2014/03/14 职场文书
道德之星事迹材料
2014/05/03 职场文书
工作保证书
2015/01/17 职场文书
2015年国庆节慰问信
2015/03/23 职场文书
2019朋友新婚祝福语精选
2019/10/10 职场文书
浅谈Python numpy创建空数组的问题
2021/05/25 Python
教你用python实现12306余票查询
2021/06/30 Python
基于Redis zSet实现滑动窗口对短信进行防刷限流的问题
2022/02/12 Redis
Python字符串格式化方式
2022/04/07 Python