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中func_get_args(),func_get_arg(),func_num_args()的区别
Sep 30 PHP
php递归使用示例(php递归函数)
Feb 14 PHP
ecshop实现smtp发送邮件
Feb 03 PHP
Windows7下的php环境配置教程
Feb 28 PHP
PHP5.3新特性小结
Feb 14 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
May 11 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
Nov 25 PHP
Yii框架实现记录日志到自定义文件的方法
May 23 PHP
使用Zttp简化Guzzle 调用
Jul 02 PHP
php实现支付宝当面付(扫码支付)功能
May 30 PHP
ThinkPHP5+Layui实现图片上传加预览功能
Aug 17 PHP
PHP PDOStatement::fetchObject讲解
Feb 01 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
PL-880隐藏功能
2021/03/01 无线电
如何在PHP中使用Oracle数据库(5)
2006/10/09 PHP
php下用cookie统计用户访问网页次数的代码
2010/05/09 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
2010/08/01 PHP
PHP系列学习之日期函数使用介绍
2012/08/18 PHP
zf框架的zend_cache缓存使用方法(zend框架)
2014/03/14 PHP
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
Extjs优化(二)Form表单提交通用实现
2013/04/15 Javascript
浅谈Sizzle的“编译原理”
2015/04/14 Javascript
jquery实现模拟百分比进度条渐变效果代码
2015/10/29 Javascript
jQuery Ajax传值到Servlet出现乱码问题的解决方法
2016/10/09 Javascript
jQuery 插件封装的方法
2016/11/16 Javascript
如何快速上手Vuex
2017/02/14 Javascript
jquery实现全选、全不选以及单选功能
2017/03/23 jQuery
Angular 表单控件示例代码
2017/06/26 Javascript
脚手架vue-cli工程webpack的作用和特点
2018/09/29 Javascript
Vue插件之滑动验证码用法详解
2020/04/05 Javascript
Node 模块原理与用法详解
2020/05/13 Javascript
JavaScript实现世界各地时间显示
2020/09/07 Javascript
简单解析Django框架中的表单验证
2015/07/17 Python
Python get获取页面cookie代码实例
2018/09/12 Python
详解pyenv下使用python matplotlib模块的问题解决
2018/11/29 Python
Python利用pandas处理Excel数据的应用详解
2019/06/18 Python
Python 矩阵转置的几种方法小结
2019/12/02 Python
Python 实现try重新执行
2019/12/21 Python
Canvas环形饼图与手势控制的实现代码
2019/11/08 HTML / CSS
会计辞职信范文
2014/01/15 职场文书
创业计划书的主要内容有哪些
2014/01/29 职场文书
小学教师培训感言
2014/02/11 职场文书
内蒙古鄂尔多斯市市长寄语
2014/04/10 职场文书
家长对老师的评语
2014/04/18 职场文书
2014学校领导四风问题对照检查材料思想汇报
2014/09/22 职场文书
乡镇镇长个人整改措施
2014/10/01 职场文书
党员干部廉政承诺书
2015/04/28 职场文书
深入浅出的讲解:信号调制到底是如何实现的
2022/02/18 无线电
HTML CSS 一个标签实现带动画的抖音LOGO
2022/04/26 HTML / CSS