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 相关文章推荐
PHPwind整合最土系统用户同步登录实现方法
Dec 08 PHP
php中随机显示图片的函数代码
Jun 23 PHP
PHP实现抓取HTTPS内容
Dec 01 PHP
自己写的php中文截取函数mb_strlen和mb_substr
Feb 09 PHP
php中header跳转使用include包含解决参数丢失问题
May 08 PHP
php+mysql实现简单的增删改查功能
Jul 13 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
Apr 10 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
Nov 10 PHP
PHP之认识(二)关于Traits的用法详解
Apr 11 PHP
PHP大文件分块上传功能实例详解
Jul 22 PHP
浅谈Laravel模板实体转义带来的坑
Oct 22 PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 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 柱状图实现代码
2009/12/04 PHP
php生成N个不重复的随机数实例
2013/11/12 PHP
ThinkPHP调用百度翻译类实现在线翻译
2014/06/26 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
2014/08/11 PHP
深入解析PHP的Yii框架中的event事件机制
2016/03/17 PHP
PHP机器学习库php-ml的简单测试和使用方法
2017/07/14 PHP
PHP实现的简单组词算法示例
2018/04/10 PHP
基于PHP的微信公众号的开发流程详解
2020/08/07 PHP
a标签的css样式四个状态
2021/03/09 HTML / CSS
asp.net+jquery滚动滚动条加载数据的下拉控件
2010/06/25 Javascript
js 数组操作之pop,push,unshift,splice,shift
2014/01/29 Javascript
js实现select下拉框菜单
2015/12/08 Javascript
Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果
2016/05/27 Javascript
详谈jQuery中使用attr(), prop(), val()获取value的异同
2017/04/25 jQuery
php 解压zip压缩包内容到指定目录的实例
2018/01/23 Javascript
JavaScript之解构赋值的理解
2019/01/30 Javascript
微信小程序实现多个按钮的颜色状态转换
2019/02/15 Javascript
[01:06:39]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第三局
2016/03/02 DOTA
[01:20]PWL S2开团时刻第三期——团战可以输 蝙蝠必须死
2020/11/26 DOTA
python中 ? : 三元表达式的使用介绍
2013/10/09 Python
Python多线程实例教程
2014/09/06 Python
在Python中进行自动化单元测试的教程
2015/04/15 Python
详解Python的Django框架中的模版相关知识
2015/07/15 Python
python sys,os,time模块的使用(包括时间格式的各种转换)
2018/04/27 Python
python实现字符串中字符分类及个数统计
2018/09/28 Python
python实现数据分析与建模
2019/07/11 Python
python判断无向图环是否存在的示例
2019/11/22 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
2020/01/21 Python
python实现批处理文件
2020/07/28 Python
Python如何把字典写入到CSV文件的方法示例
2020/08/23 Python
Urban Outfitters美国官网:美国生活方式品牌
2016/08/26 全球购物
美国克罗格超市在线购物:Kroger
2019/06/21 全球购物
护士自荐信范文
2013/12/15 职场文书
应聘教师求职信
2014/07/19 职场文书
中学生综合素质自我评价
2015/03/06 职场文书
golang判断key是否在map中的代码
2021/04/24 Golang