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与ASP
Oct 09 PHP
PHP 高手之路(二)
Oct 09 PHP
PHP以指定字段为索引返回数据库所取的数据数组
Jun 30 PHP
php实现的Cookies操作类实例
Sep 24 PHP
在html文件中也可以执行php语句的方法
Apr 09 PHP
php替换字符串中间字符为省略号的方法
May 04 PHP
Smarty高级应用之缓存操作技巧分析
May 14 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
Nov 21 PHP
PHP学习笔记之session
May 06 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 PHP
php PDO属性设置与操作方法分析
Dec 27 PHP
关于php开启错误提示的总结
Sep 24 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 array_intersect比array_diff快(附详细的使用说明)
2011/07/03 PHP
PHP实现的简单适配器模式示例
2017/06/22 PHP
js 字符串操作函数
2009/07/25 Javascript
淘宝搜索框效果实现分析
2011/03/05 Javascript
JQuery+CSS提示框实现思路及代码(纯手工打造)
2013/05/07 Javascript
JS操作JSON要领详细总结
2013/08/25 Javascript
JS比较两个时间大小的简单示例代码
2013/12/20 Javascript
jquery实现当滑动到一定位置时固定效果
2014/06/17 Javascript
纯JavaScript实现获取onclick、onchange等事件的值
2014/12/29 Javascript
javascript判断移动端访问设备并解析对应CSS的方法
2015/02/05 Javascript
浅谈EasyUI中编辑treegrid的方法
2015/03/01 Javascript
谈谈JavaScript中function多重理解
2015/08/28 Javascript
使用DeviceOne实现微信小程序功能
2016/12/29 Javascript
让你彻底掌握es6 Promise的八段代码
2017/07/26 Javascript
nodejs async异步常用函数总结(推荐)
2017/11/17 NodeJs
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
2019/11/04 Javascript
Python Tkinter基础控件用法
2014/09/03 Python
Python使用xlrd读取Excel格式文件的方法
2015/03/10 Python
fastcgi文件读取漏洞之python扫描脚本
2017/04/23 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
2017/11/01 Python
python flask搭建web应用教程
2019/11/19 Python
Python高级编程之继承问题详解(super与mro)
2019/11/19 Python
python数据化运营的重要意义
2019/11/25 Python
python进程的状态、创建及使用方法详解
2019/12/06 Python
html5利用canvas绘画二级树形结构图的示例
2017/09/27 HTML / CSS
Crocs卡骆驰洞洞鞋日本官方网站:Crocs日本
2016/08/25 全球购物
Under Armour安德玛英国官网:美国高端运动科技品牌
2018/09/17 全球购物
意大利奢侈品多品牌集合店:TheDoubleF
2019/08/24 全球购物
Oracle里面常用的数据字典有哪些
2014/02/14 面试题
客户代表实习人员自我鉴定
2013/09/27 职场文书
中小学校园安全广播稿
2014/09/29 职场文书
2014年项目经理工作总结
2014/11/24 职场文书
干部培训简讯
2015/07/20 职场文书
《我的伯父鲁迅先生》教学反思
2016/02/16 职场文书
在Java中Collection的一些常用方法总结
2021/06/13 Java/Android
微软团队与 NASA 科学家和惠普企业(HPE)的工程师合作
2022/04/21 数码科技