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 相关文章推荐
ubuntu下编译安装xcache for php5.3 的具体操作步骤
Jun 18 PHP
国产PHP开发框架myqee新手快速入门教程
Jul 14 PHP
ThinkPHP中的常用查询语言汇总
Aug 22 PHP
php使用GD创建保持宽高比缩略图的方法
Apr 17 PHP
图文介绍PHP添加Redis模块及连接
Jul 28 PHP
几行代码轻松实现PHP文件打包下载zip
Mar 01 PHP
Windows下php+mysql5.7配置教程
May 16 PHP
php格式文件打开的四种方法
Feb 24 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
May 12 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
Oct 18 PHP
Laravel 微信小程序后端实现用户登录的示例代码
Nov 26 PHP
PHP正则表达式函数preg_replace用法实例分析
Jun 04 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
PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法
2009/05/28 PHP
php不允许用户提交空表单(php空值判断)
2013/11/12 PHP
php+memcache实现的网站在线人数统计代码
2014/07/04 PHP
php使用curl获取https请求的方法
2015/02/11 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
Javascript-Mozilla和IE中的一个函数直接量的问题
2007/01/09 Javascript
自动生成文章摘要的代码[JavaScript 版本]
2007/03/20 Javascript
jQuery 使用手册(二)
2009/09/23 Javascript
jQuery 常见学习网站与参考书
2009/11/09 Javascript
checkbox全选/取消全选以及checkbox遍历jQuery实现代码
2009/12/02 Javascript
js以对象为索引的关联数组
2010/07/04 Javascript
使用JQUERY进行后台页面布局控制DIV实现左右式
2014/01/07 Javascript
动态添加option及createElement使用示例
2014/01/26 Javascript
connect中间件session、cookie的使用方法分享
2014/06/17 Javascript
javascript引用赋值(地址传值)用法实例
2015/01/13 Javascript
NodeJS学习笔记之Connect中间件应用实例
2015/01/27 NodeJs
select2 ajax 设置默认值,初始值的方法
2018/08/09 Javascript
Python os模块中的isfile()和isdir()函数均返回false问题解决方法
2015/02/04 Python
python实现12306火车票查询器
2017/04/20 Python
python最长回文串算法
2018/06/04 Python
dataframe 按条件替换某一列中的值方法
2019/01/29 Python
150行Python代码实现带界面的数独游戏
2020/04/04 Python
如何验证python安装成功
2020/07/06 Python
python 中 .py文件 转 .pyd文件的操作
2021/03/04 Python
爱尔兰最大的体育零售商:Life Style Sports
2019/06/12 全球购物
JYSK加拿大:购买家具、床垫、家居装饰等
2020/02/14 全球购物
利达恒信公司.NET笔试题面试题
2016/03/05 面试题
Linux内核产生并发的原因
2012/07/13 面试题
钳工实习自我鉴定
2013/09/19 职场文书
土木工程师岗位职责
2013/11/24 职场文书
我的画教学反思
2014/04/28 职场文书
作文批改评语
2014/12/25 职场文书
2015年计算机教学工作总结
2015/07/22 职场文书
详解JVM系列之内存模型
2021/06/10 Javascript
css3中2D转换之有趣的transform形变效果
2022/02/24 HTML / CSS