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,ajax实现分页
Mar 27 PHP
深入PHP nl2br()格式化输出的详解
Jun 05 PHP
腾讯QQ微博API接口获取微博内容
Oct 30 PHP
ThinkPHP上使用多说评论插件的方法
Oct 31 PHP
php绘图之生成饼状图的方法
Jan 24 PHP
php远程下载类分享
Apr 13 PHP
php图片上传类 附调用方法
May 15 PHP
CI框架常用函数封装实例
Nov 21 PHP
PHP单例模式定义与使用实例详解
Feb 06 PHP
php实现微信企业号支付个人的方法详解
Jul 26 PHP
PHP实现生成数据字典功能示例
May 24 PHP
PHP中ltrim()函数的用法与实例讲解
Mar 28 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
header()函数使用说明
2006/11/23 PHP
一个PHP验证码类代码分享(已封装成类)
2011/07/17 PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
2013/09/23 PHP
PHP关于IE下的iframe跨域导致session丢失问题解决方法
2013/10/10 PHP
基于thinkPHP实现的微信自定义分享功能示例
2016/09/23 PHP
php解决crontab定时任务不能写入文件问题的方法分析
2019/09/16 PHP
TP5多入口设置实例讲解
2020/12/15 PHP
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
40款非常有用的 jQuery 插件推荐(系列一)
2011/12/21 Javascript
gridpanel动态加载数据的实例代码
2013/07/18 Javascript
js实现文本框中焦点在最后位置
2014/03/04 Javascript
js的Boolean对象初始值示例
2014/03/04 Javascript
判断字符串的长度(优化版)中文占两个字符
2014/10/30 Javascript
javascript包装对象实例分析
2015/03/27 Javascript
javascript中Date()函数在各浏览器中的显示效果
2015/06/18 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
2015/11/17 Javascript
详解ECharts使用心得总结
2016/12/06 Javascript
一步快速解决微信小程序中textarea层级太高遮挡其他组件
2019/03/04 Javascript
vue基础之使用get、post、jsonp实现交互功能示例
2019/03/12 Javascript
json数据格式常见操作示例
2019/06/13 Javascript
为react组件库添加typescript类型提示的方法
2020/06/15 Javascript
vant 中van-list的用法说明
2020/11/11 Javascript
[01:29]2014DOTA2展望TI 剑指西雅图DK战队专访
2014/06/30 DOTA
[08:29]DOTA2每周TOP10 精彩击杀集锦vol.7
2014/06/25 DOTA
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
Django 中自定义 Admin 样式与功能的实现方法
2019/07/04 Python
python爬虫scrapy基于CrawlSpider类的全站数据爬取示例解析
2021/02/20 Python
英国自行车商店:AW Cycles
2021/02/24 全球购物
杭州时比特电子有限公司SQL
2013/08/22 面试题
茶叶生产计划书
2014/01/10 职场文书
产品推广策划方案
2014/05/10 职场文书
群众路线个人剖析材料
2014/10/07 职场文书
统计员岗位职责范本
2015/04/14 职场文书
安全生产会议制度
2015/08/06 职场文书
解决python绘图使用subplots出现标题重叠的问题
2021/04/30 Python
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
2022/04/24 Python