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 Try Catch异常测试
Mar 01 PHP
PHP中for与foreach的区别分析
Mar 09 PHP
php流量统计功能的实现代码
Sep 29 PHP
php gzip压缩输出的实现方法
Apr 27 PHP
解析ajax事件的调用顺序
Jun 17 PHP
PHP curl实现抓取302跳转后页面的示例
Jul 04 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
Sep 22 PHP
php封装的smarty类完整实例
Oct 19 PHP
PHP创建单例后台进程的方法示例
May 23 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
Oct 12 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
May 23 PHP
PHP实现创建一个RPC服务操作示例
Feb 23 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教程 变量定义
2009/10/23 PHP
php自动获取目录下的模板的代码
2010/08/08 PHP
ThinkPHP表单自动验证实例
2014/10/13 PHP
PHP 文件上传限制问题
2019/09/01 PHP
Yii框架自定义数据库操作组件示例
2019/11/11 PHP
jQuery 性能优化指南 (1)
2009/05/21 Javascript
javascript 24小时弹出一次的代码(利用cookies)
2009/09/03 Javascript
javascript阻止scroll事件多次执行的思路及实现
2013/11/08 Javascript
超详细动手搭建一个VuePress 站点及开启PWA与自动部署的方法
2019/01/27 Javascript
用Cordova打包Vue项目的方法步骤
2019/02/02 Javascript
JavaScript常用工具方法封装
2019/02/12 Javascript
[52:52]完美世界DOTA2联赛PWL S3 LBZS vs access 第一场 12.10
2020/12/13 DOTA
python实现定制交互式命令行的方法
2014/07/03 Python
浅谈Python的垃圾回收机制
2016/12/17 Python
python通过百度地图API获取某地址的经纬度详解
2018/01/28 Python
python 实现查找文件并输出满足某一条件的数据项方法
2019/06/12 Python
python集合是否可变总结
2019/06/20 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
2019/08/20 Python
python实现布隆过滤器及原理解析
2019/12/08 Python
python 列表、字典和集合的添加和删除操作
2019/12/16 Python
Python类成员继承重写的实现
2020/09/16 Python
移动端Html5中百度地图的点击事件
2019/01/31 HTML / CSS
美国网上鞋子零售商:Dr. Scholl’s Shoes
2017/11/17 全球购物
不打扫卫生检讨书
2014/02/12 职场文书
2015大学生暑期实习报告
2015/07/13 职场文书
2016春季校长开学典礼致辞
2015/11/26 职场文书
工伤调解协议书
2016/03/21 职场文书
《狼王梦》读后感:可怜天下父母心
2019/11/01 职场文书
创作书写之导游词实用技巧分享(干货)
2019/12/20 职场文书
JavaScript 实现页面滚动动画
2021/04/24 Javascript
MySQL的安装与配置详细教程
2021/06/26 MySQL
Tomcat用户管理的优化配置详解
2022/03/31 Servers
彩虹社八名人气艺人全新周边限时推出,性转女装男装一次拥有!
2022/04/01 日漫
进行数据处理的6个 Python 代码块分享
2022/04/06 Python
使用Python开发贪吃蛇游戏 SnakeGame
2022/04/30 Python
Redis特殊数据类型Geospatial地理空间
2022/06/01 Redis