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 相关文章推荐
使用Apache的rewrite技术
Jun 22 PHP
PHP+MYSQL 出现乱码的解决方法
Aug 08 PHP
PHP 变量的定义方法
Jan 26 PHP
PHP 强制性文件下载功能的函数代码(任意文件格式)
May 26 PHP
php中static静态变量的使用方法详解
Jun 04 PHP
基于PHP生成静态页的实现方法
May 10 PHP
利用curl抓取远程页面内容的示例代码
Jul 23 PHP
PHP中ini_set和ini_get函数的用法小结
Feb 18 PHP
WordPress开发中用于标题显示的相关函数使用解析
Jan 07 PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
Apr 30 PHP
PHP实现数据四舍五入的方法小结【4种方法】
Mar 27 PHP
PHP pthreads v3使用中的一些坑和注意点分析
Feb 21 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 visitFile()遍历指定文件夹函数
2010/08/21 PHP
PHP容易忘记的知识点分享
2013/04/30 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
2017/02/03 PHP
PHP实现大数(浮点数)取余的方法
2017/02/18 PHP
php xhprof使用实例详解
2019/04/15 PHP
Yii框架学习笔记之session与cookie简单操作示例
2019/04/30 PHP
文字幻灯片
2006/06/26 Javascript
在JavaScript中使用inline函数的问题
2007/03/08 Javascript
JQuery中关于jquery.js与jquery.min.js的比较探讨
2013/05/15 Javascript
jquery三个关闭弹出层的小示例
2013/11/05 Javascript
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
javascript实现时间格式输出FormatDate函数
2015/01/13 Javascript
javascript实现当前页导航激活的方法
2015/02/27 Javascript
使用Object.defineProperty实现简单的js双向绑定
2016/04/15 Javascript
js前端解决跨域问题的8种方案(最新最全)
2016/11/18 Javascript
原生js实现可拖动的登录框效果
2017/01/21 Javascript
详解Vue中状态管理Vuex
2017/05/11 Javascript
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
2017/12/06 Javascript
微信小程序wx.getImageInfo()如何获取图片信息
2018/01/26 Javascript
JS从非数组对象转数组的方法小结
2018/03/26 Javascript
Vue多组件仓库开发与发布详解
2019/02/28 Javascript
详解vue在项目中使用百度地图
2019/03/26 Javascript
Vue修改项目启动端口号方法
2019/11/07 Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
2020/06/19 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
Python中使用wxPython开发的一个简易笔记本程序实例
2015/02/08 Python
hmac模块生成加入了密钥的消息摘要详解
2018/01/11 Python
Python cookbook(数据结构与算法)从任意长度的可迭代对象中分解元素操作示例
2018/02/13 Python
在Python中过滤Windows文件名中的非法字符方法
2019/06/10 Python
python设计微型小说网站(基于Django+Bootstrap框架)
2019/07/08 Python
Python中Unittest框架的具体使用
2019/08/27 Python
伊芙丽官方旗舰店:中国淑女一线品牌
2017/12/01 全球购物
使用索引有什么好处
2016/07/27 面试题
工作中的自我评价如何写好
2013/10/28 职场文书
市场营销方案范文
2014/03/11 职场文书
小学运动会前导词
2015/07/20 职场文书