php+mysqli事务控制实现银行转账实例


Posted in PHP onJanuary 29, 2015

本文实例讲述了php+mysqli事务控制实现银行转账的方法。分享给大家供大家参考。具体分析如下:

事务控制,也就是说所有的语句执行成功后,才会提交。否则,如果前面有语句执行成功,而后面没有执行成功,则回滚到执行之前的状态。通过银行转账的案例来说明这个应用。一个账号转了钱出去,另一个账号必须有钱转入,这样才算成功。

代码如下:

<?php
//1、创建数据库连接对象
$mysqli = new MySQLi("localhost","root","123456","liuyan");
if($mysqli->connect_error){
 die($mysqli->connect_error);
}
$mysqli->query("set names 'GBK'");

$mysqli->autocommit(false);
//首先设置autocommit为false,也就是不自动提交

$sql1 = "update account set balance=balance-2 where id=1;";
$sql2 = "update account set balance=balance+2 where id=2;";
$res1 =$mysqli->query($sql1) or die($mysqli->error);
$res2 =$mysqli->query($sql2) or die($mysqli->error);

if(!$res1 || !$res2){
 echo "转账失败";
 $mysqli->rollback();//如果有一条不成功,则回滚
}else{
 $mysqli->commit();//两条语句都执行成功,则提交
 echo "转账成功";
}
?>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
php获得当前的脚本网址
Dec 10 PHP
PHP 函数执行效率的小比较
Oct 17 PHP
Php Image Resize图片大小调整的函数代码
Jan 17 PHP
php 模拟POST提交的2种方法详解
Jun 17 PHP
ThinkPHP中ajax使用实例教程
Aug 22 PHP
typecho插件编写教程(三):保存配置
May 28 PHP
简单介绍win7下搭建apache+php+mysql开发环境
Aug 06 PHP
在Mac OS的PHP环境下安装配置MemCache的全过程解析
Feb 15 PHP
PHP+Ajax+JS实现多图上传
May 07 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
Oct 25 PHP
PHP7 list() 函数修改
Mar 09 PHP
php将xml转化对象的实例详解
Nov 17 PHP
php+mysqli批量查询多张表数据的方法
Jan 29 #PHP
php+mysqli实现批量执行插入、更新及删除数据的方法
Jan 29 #PHP
php+mysqli使用面向对象方式查询数据库实例
Jan 29 #PHP
php+mysqli使用面向对象方式更新数据库实例
Jan 29 #PHP
新浪SAE搭建PHP项目教程
Jan 28 #PHP
php+mysqli数据库连接的两种方式
Jan 28 #PHP
PHP实现返回JSON和XML的类分享
Jan 28 #PHP
You might like
PHP+MYSQL开发工具及资源收藏
2007/01/02 PHP
php file_put_contents()功能函数(集成了fopen、fwrite、fclose)
2011/05/24 PHP
yii框架配置默认controller和action示例
2014/04/30 PHP
thinkPHP实现瀑布流的方法
2014/11/29 PHP
PHP贪婪算法解决0-1背包问题实例分析
2015/03/23 PHP
yii2控制器Controller Ajax操作示例
2016/07/23 PHP
php面向对象重点知识分享
2019/09/27 PHP
js异或加解密效果代码
2008/06/25 Javascript
js中replace的用法总结
2013/12/27 Javascript
javascript进行四舍五入方法汇总
2014/12/16 Javascript
AngularJs根据访问的页面动态加载Controller的解决方案
2015/02/04 Javascript
Nodejs关于gzip/deflate压缩详解
2015/03/04 NodeJs
jQuery插件之jQuery.Form.js用法实例分析(附demo示例源码)
2016/01/04 Javascript
JS验证图片格式和大小并预览的简单实例
2016/10/11 Javascript
AngularJS中的拦截器实例详解
2017/04/07 Javascript
vue webpack打包后图片路径错误的完美解决方法
2018/12/07 Javascript
vue.js引入外部CSS样式和外部JS文件的方法
2019/01/06 Javascript
js中Function引用类型常见有用的方法和属性详解
2019/12/11 Javascript
node使用request请求的方法
2019/12/20 Javascript
js实现踩五彩块游戏
2020/02/08 Javascript
小程序接入腾讯位置服务的详细流程
2020/03/03 Javascript
原生小程序封装跑马灯效果
2020/10/21 Javascript
浅谈JSON5解决了JSON的两大痛点
2020/12/14 Javascript
Python中使用语句导入模块或包的机制研究
2015/03/30 Python
基于python 爬虫爬到含空格的url的处理方法
2018/05/11 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
2020/03/04 Python
Champs Sports加拿大:北美最大的以商场为基础的专业运动鞋和服装零售商之一
2018/05/01 全球购物
写一个方法1000的阶乘
2012/11/21 面试题
雅虎笔试题(字符串操作)
2015/03/24 面试题
工会主席岗位责任制
2014/02/11 职场文书
上课看小说检讨书
2014/02/22 职场文书
党员对照检查材料整改措施思想汇报
2014/09/26 职场文书
爸爸的三轮车观后感
2015/06/16 职场文书
2016年党员岗位承诺书
2016/03/24 职场文书
MySQL完整性约束的定义与实例教程
2021/05/30 MySQL
redis击穿 雪崩 穿透超详细解决方案梳理
2022/03/17 Redis