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 相关文章推荐
require(),include(),require_once()和include_once()区别
Mar 27 PHP
PHP 定界符 使用技巧
Jun 14 PHP
ajax php 实现写入数据库
Sep 02 PHP
PHP 中文处理技巧
Apr 25 PHP
PHP中for与foreach的区别分析
Mar 09 PHP
PHP求最大子序列和的算法实现
Jun 24 PHP
php基于mcrypt的加密解密实例
Oct 27 PHP
PHP中Closure类的使用方法及详解
Oct 09 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
Apr 14 PHP
php短信接口代码
May 13 PHP
visual studio code 调试php方法(图文详解)
Sep 15 PHP
php+redis实现商城秒杀功能
Nov 19 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读取文件的常见几种方法
2016/11/03 PHP
Thinkphp集成抖音SDK的实现方法
2020/04/28 PHP
javascript之ESC(第二类混淆)
2007/05/06 Javascript
在JavaScript中获取请求的URL参数
2010/12/22 Javascript
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
2010/12/28 Javascript
JavaScript中清空数组的三种方法分享
2011/04/07 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
jquery css 设置table的奇偶行背景色示例
2014/06/03 Javascript
jQuery解析XML与传统JavaScript方法的差别实例分析
2015/03/05 Javascript
javascript仿百度输入框提示自动下拉补全
2016/01/07 Javascript
基于jquery fly插件实现加入购物车抛物线动画效果
2016/04/05 Javascript
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
2016/04/18 Javascript
轻松掌握JavaScript装饰者模式
2016/08/27 Javascript
vue.js中Vue-router 2.0基础实践教程
2017/05/08 Javascript
使用pkg打包Node.js应用的方法步骤
2018/10/19 Javascript
Vue微信公众号网页分享的示例代码
2020/05/28 Javascript
Python中使用PDB库调试程序
2015/04/05 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
2019/06/17 Python
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
Python实现生成密码字典的方法示例
2019/09/02 Python
Python 私有化操作实例分析
2019/11/21 Python
python3将变量写入SQL语句的实现方式
2020/03/02 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
2020/10/29 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
2021/01/12 Python
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
牵手50新加坡:专为黄金岁月的单身人士而设的交友网站
2020/08/16 全球购物
Linux管理员面试题 Linux admin interview questions
2014/11/01 面试题
鉴定评语大全
2014/05/05 职场文书
我为党旗添光彩演讲稿
2014/09/13 职场文书
销售人员工作自我评价
2014/09/21 职场文书
领导班子三严三实心得体会
2014/10/13 职场文书
离婚协议书格式
2014/11/21 职场文书
合理化建议书
2015/02/04 职场文书
学校远程教育工作总结
2015/08/11 职场文书
2019假期福利管理制度!
2019/07/15 职场文书
微信小程序实现轮播图指示器
2022/06/25 Javascript