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 多进程 解决难题
Jun 22 PHP
php关于array_multisort多维数组排序的使用说明
Jan 04 PHP
11个PHP 分页脚本推荐
Aug 15 PHP
php使用function_exists判断函数可用的方法
Nov 19 PHP
php常用文件操作函数汇总
Nov 22 PHP
php封装的smarty类完整实例
Oct 19 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
Dec 07 PHP
PHP文件管理之实现网盘及压缩包的功能操作
Sep 20 PHP
PHP使用PDO操作sqlite数据库应用案例
Mar 07 PHP
laravel实现按时间日期进行分组统计方法示例
Mar 23 PHP
php5与php7的区别点总结
Oct 11 PHP
PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
Dec 12 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开发框架myqee新手快速入门教程
2014/07/14 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
2014/11/04 PHP
PHP设计模式之简单投诉页面实例
2016/02/24 PHP
PHP实现文件上传操作和封装
2020/03/04 PHP
html数组字符串拼接的最快方法
2009/09/16 Javascript
基于编写jQuery的无缝滚动插件
2014/08/02 Javascript
使用script的src实现跨域和类似ajax效果
2014/11/10 Javascript
JavaScript控制网页层收起和展开效果的方法
2015/04/15 Javascript
js控制文本框输入的字符类型方法汇总
2015/06/19 Javascript
JavaScript 闭包详细介绍
2016/09/28 Javascript
BootStrap 弹出层代码
2017/02/09 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
2017/04/23 Javascript
ionic 自定义弹框效果
2017/06/27 Javascript
vue 使用eventBus实现同级组件的通讯
2018/03/02 Javascript
vue导出html、word和pdf的实现代码
2018/07/31 Javascript
JS实现根据详细地址获取经纬度功能示例
2019/04/16 Javascript
layui table数据修改的回显方法
2019/09/04 Javascript
python写的一个文本编辑器
2014/01/23 Python
python通过socket查询whois的方法
2015/07/18 Python
python语言使用技巧分享
2016/05/31 Python
tensorflow 1.0用CNN进行图像分类
2018/04/15 Python
Django Admin实现三级联动的示例代码(省市区)
2018/06/22 Python
详解Python的hasattr() getattr() setattr() 函数使用方法
2018/07/09 Python
python爬虫把url链接编码成gbk2312格式过程解析
2020/06/08 Python
python复合条件下的字典排序
2020/12/18 Python
CSS3 旋转立方体问题详解
2020/01/09 HTML / CSS
梅西百货澳大利亚:Macy’s Australia
2017/07/26 全球购物
英国音乐设备和乐器商店:Gear4music
2017/10/16 全球购物
"引用"与多态的关系
2013/02/01 面试题
自荐信格式写作方法有哪些呢
2013/11/20 职场文书
入党积极分子自我鉴定
2014/02/18 职场文书
初中学校军训方案
2014/05/09 职场文书
三人合伙协议书范本
2014/10/29 职场文书
2015年度护士个人工作总结
2015/04/09 职场文书
2016年10月份红领巾广播稿
2015/12/21 职场文书
SQL 窗口函数实现高效分页查询的案例分析
2021/05/21 SQL Server