php+Mysqli利用事务处理转账问题实例


Posted in PHP onFebruary 11, 2015

本文实例讲述了php+Mysqli利用事务处理转账问题的方法。分享给大家供大家参考。具体实现方法如下:

<?php 
  header("Content-type:text/html; charset=utf-8"); 
   
  $mysqli = new mysqli("localhost", "root", "064319", "php"); 
  $mysqli->set_charset("utf8"); 
   
  if($mysqli->connect_errno) { 
   die('数据库连接失败'.$mysqli->connect_error); 
  } 
   
  $mysqli->autocommit(false); //自动提交模式设为false 
  $flag = true; //事务是否成功执行的标志 
   
  $query = "update account set balance=balance-1000 where id=3"; 
  $result = $mysqli->query($query); 
  $affected_count = $mysqli->affected_rows; 
  if(!result || $affected_count == 0) {  //失败 
   $flag = false;   
  } 
   
  $query = "update account set balance=balance+1000 where id=2"; 
  $result = $mysqli->query($query); 
  $affected_count = $mysqli->affected_rows; 
  if(!$result || $affected_count == 0) { 
   $flag = false; 
  } 
   
  if($flag) { 
   $mysqli->commit(); 
   echo '转账成功'; 
  } else { 
   $mysqli->rollback(); 
   echo '转账失败'; 
  } 
   
  $mysqli->autocommit(true); //重新设置事务为自动提交 
  $mysqli->close(); 
?>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
PHP生成静态页面详解
Dec 05 PHP
php HtmlReplace输入过滤安全函数
Jul 03 PHP
php whois查询API制作方法
Jun 23 PHP
PHP查询MySQL大量数据的时候内存占用分析
Jul 22 PHP
PHP设计模式 注册表模式
Feb 05 PHP
PHP的异常处理类Exception的使用及说明
Jun 13 PHP
Zend Studio 实用快捷键一览表(精心整理)
Aug 10 PHP
PHP 面向对象程序设计(oop)学习笔记 (五) - PHP 命名空间
Jun 12 PHP
ThinkPHP安装和设置
Jul 27 PHP
PHP 的Opcache加速的使用方法
Dec 29 PHP
PHP数字金额转换成中文大写显示
Jan 05 PHP
PHP SESSION机制的理解与实例
Mar 22 PHP
php使用iconv中文截断问题的解决方法
Feb 11 #PHP
php发送与接收流文件的方法
Feb 11 #PHP
php实现上传图片保存到数据库的方法
Feb 11 #PHP
php使用curl获取https请求的方法
Feb 11 #PHP
php+html5使用FormData对象提交表单及上传图片的方法
Feb 11 #PHP
php判断并删除空目录及空子目录的方法
Feb 11 #PHP
php获取YouTube视频信息的方法
Feb 11 #PHP
You might like
php实例分享之二维数组排序
2014/05/15 PHP
php实现的Timer页面运行时间监测类
2014/09/24 PHP
jQuery生成asp.net服务器控件的代码
2010/02/04 Javascript
JQuery从头学起第三讲
2010/07/06 Javascript
jquery实现select下拉框美化特效代码分享
2015/08/18 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
JS原型对象的创建方法详解
2016/06/16 Javascript
js操作DOM--添加、删除节点的简单实例
2016/07/08 Javascript
BootstrapTable请求数据时设置超时(timeout)的方法
2017/01/22 Javascript
React Native中的RefreshContorl下拉刷新使用
2017/10/09 Javascript
详解基于Koa2开发微信二维码扫码支付相关流程
2018/05/16 Javascript
vue css 引入asstes中的图片无法显示的四种解决方法
2020/03/16 Javascript
创建与框架无关的JavaScript插件
2020/12/01 Javascript
[00:32]10月24、25日 辉夜杯外卡赛附加赛开赛!
2015/10/23 DOTA
[46:00]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第一局
2016/03/03 DOTA
Python简单实现TCP包发送十六进制数据的方法
2016/04/16 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
2018/02/18 Python
python实现pdf转换成word/txt纯文本文件
2018/06/07 Python
用Python徒手撸一个股票回测框架搭建【推荐】
2019/08/05 Python
django-crontab 定时执行任务方法的实现
2019/09/06 Python
python利用opencv实现SIFT特征提取与匹配
2020/03/05 Python
python 日志 logging模块详细解析
2020/03/31 Python
用python制作个音乐下载器
2021/01/30 Python
Java程序员面试题
2016/09/27 面试题
师范大学应届生求职信
2013/11/21 职场文书
无工作经验者个人求职信范文
2013/12/22 职场文书
祖国在我心中演讲稿
2014/01/15 职场文书
婚礼司仪主持词
2014/03/14 职场文书
公开服务承诺制度
2014/03/26 职场文书
仓库规划计划书
2014/04/28 职场文书
安全承诺书格式
2014/05/21 职场文书
中专毕业生的自荐书
2014/07/01 职场文书
离婚协议书怎样才有法律效力
2014/10/10 职场文书
公司仓管员岗位职责
2015/04/01 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书
MySQL系列之四 SQL语法
2021/07/02 MySQL