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 验证码制作(网树注释思想)
Jul 20 PHP
window+nginx+php环境配置 附配置搭配说明
Dec 29 PHP
input file获得文件根目录简单实现
Apr 26 PHP
PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解
Jun 03 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(八)
Jun 23 PHP
php实现的九九乘法口诀表简洁版
Jul 28 PHP
WordPress中is_singular()函数简介
Feb 05 PHP
php简单生成随机数的方法
Jul 30 PHP
微信获取用户地理位置信息的原理与步骤
Nov 12 PHP
学习php设计模式 php实现原型模式(prototype)
Dec 07 PHP
PHP中多线程的两个实现方法
Oct 14 PHP
php实现与python进行socket通信的方法示例
Aug 30 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
shell脚本作为保证PHP脚本不挂掉的守护进程实例分享
2013/07/15 PHP
PHP抓屏函数实现屏幕快照代码分享
2014/01/02 PHP
PHP中使用php://input处理相同name值的表单数据
2015/02/03 PHP
php使用PDO下exec()函数查询执行后受影响行数的方法
2017/03/28 PHP
PHP实现找出有序数组中绝对值最小的数算法分析
2017/08/07 PHP
laravel利用中间件做防非法登录和权限控制示例
2019/10/21 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
TFDN图片播放器 不错自动播放
2006/10/03 Javascript
EXTJS记事本 当CompositeField遇上RowEditor
2011/07/31 Javascript
jquery限定文本框只能输入数字即整数和小数
2013/11/29 Javascript
jQuery调用RESTful WCF示例代码(GET方法/POST方法)
2014/01/26 Javascript
jQuery判断当前点击的是第几个li的代码
2014/09/26 Javascript
Javascript中call和apply函数的比较和使用实例
2015/02/03 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
2016/01/14 Javascript
基于JavaScript实现图片连播和联级菜单实例代码
2017/07/28 Javascript
ionic 3.0+ 项目搭建运行环境的教程
2017/08/09 Javascript
Angular7创建项目、组件、服务以及服务的使用
2019/02/19 Javascript
angular 服务随记小结
2019/05/06 Javascript
jQuery Migrate 插件用法实例详解
2019/05/22 jQuery
python中使用mysql数据库详细介绍
2015/03/27 Python
python安装mysql-python简明笔记(ubuntu环境)
2016/06/25 Python
Python实现获取命令行输出结果的方法
2017/06/10 Python
python操作oracle的完整教程分享
2018/01/30 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
2018/11/07 Python
利用python实现AR教程
2019/11/20 Python
Python能做什么
2020/06/02 Python
Python如何telnet到网络设备
2021/02/18 Python
大专毕业生自我鉴定
2013/11/21 职场文书
幼儿园优秀教师事迹
2014/02/13 职场文书
反邪教警示教育方案
2014/05/13 职场文书
开展批评与自我批评发言材料
2014/05/15 职场文书
后备干部培训方案
2014/05/22 职场文书
2014年公司工作总结
2014/11/22 职场文书
2019最新版劳务派遣管理制度
2019/08/16 职场文书
微软Win11有哪些隐藏功能? windows11多个功能汇总
2021/11/21 数码科技
Python线程池与GIL全局锁实现抽奖小案例
2022/04/13 Python