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+oracle 分页类
Oct 09 PHP
php中将地址生成迅雷快车旋风链接的代码[测试通过]
Apr 20 PHP
php自动加载autoload机制示例分享
Feb 20 PHP
php目录遍历函数opendir用法实例
Nov 20 PHP
php实现猴子选大王问题算法实例
Apr 20 PHP
PHP调试及性能分析工具Xdebug详解
Feb 09 PHP
php使用PDO执行SQL语句的方法分析
Feb 16 PHP
thinkPHP5.0框架安装教程
Mar 25 PHP
Laravel接收前端ajax传来的数据的实例代码
Jul 20 PHP
PHP5.5新特性之yield理解与用法实例分析
Jan 11 PHP
PHP大文件分块上传功能实例详解
Jul 22 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
Mar 26 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
THINKPHP+JS实现缩放图片式截图的实现
2010/03/07 PHP
PHP准确取得服务器IP地址的方法
2015/06/02 PHP
PHP json_encode() 函数详解及中文乱码问题
2015/11/05 PHP
PHP实现自动识别原编码并对字符串进行编码转换的方法
2016/07/13 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
ThinkPHP 在阿里云上的nginx.config配置实例详解
2017/10/11 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
jQuery布局插件UI Layout简介及使用方法
2013/04/03 Javascript
js判断是否为ie的方法小结
2014/01/13 Javascript
Javascript中的五种数据类型详解
2014/12/26 Javascript
javascript操作表格排序实例分析
2015/05/06 Javascript
javascript实现一个数值加法函数
2015/06/26 Javascript
javascript如何定义对象数组
2016/06/07 Javascript
angular仿支付宝密码框输入效果
2017/03/25 Javascript
VUE利用vuex模拟实现新闻点赞功能实例
2017/06/28 Javascript
jQuery之动画ajax事件(实例讲解)
2017/07/18 jQuery
CKEditor4配置与开发详细中文说明文档
2018/10/08 Javascript
node实现socket链接与GPRS进行通信的方法
2019/05/20 Javascript
js点击事件的执行过程实例分析【冒泡与捕获】
2020/04/11 Javascript
解析Python中的生成器及其与迭代器的差异
2016/06/20 Python
详解python之多进程和进程池(Processing库)
2017/06/09 Python
python_opencv用线段画封闭矩形的实例
2018/12/05 Python
Python玩转PDF的各种骚操作
2019/05/06 Python
Django+zTree构建组织架构树的方法
2019/08/21 Python
Django多个app urls配置代码实例
2020/11/26 Python
Python的信号库Blinker用法详解
2020/12/31 Python
Algenist奥杰尼官网:微藻抗衰老护肤品牌
2017/07/15 全球购物
The Beach People美国:澳洲海滨奢华品牌
2018/07/05 全球购物
Carolina工作鞋官网:Carolina Footwear
2019/03/14 全球购物
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
计算机应用职专应届生求职信
2013/11/12 职场文书
护士自荐信怎么写
2015/03/06 职场文书
红色经典观后感
2015/06/18 职场文书
教师读书活动心得体会
2016/01/14 职场文书
Python中zipfile压缩包模块的使用
2021/05/14 Python
Python3使用Qt5来实现简易的五子棋小游戏
2022/05/02 Python