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中的注释、变量、数组、常量、函数应用介绍
Nov 16 PHP
php使用codebase生成随机数
Mar 25 PHP
PHP批量删除、清除UTF-8文件BOM头的代码实例
Apr 14 PHP
PHP中把stdClass Object转array的几个方法
May 08 PHP
Windows下的PHP安装pear教程
Oct 24 PHP
ThinkPHP独立分组使用的注意事项
Nov 25 PHP
浅谈php处理后端&amp;接口访问超时的解决方法
Oct 29 PHP
PHP连接MySQL进行增、删、改、查操作
Feb 19 PHP
tp框架(thinkPHP)实现三次登陆密码错误之后锁定账号功能示例
May 24 PHP
laravel框架的安装与路由实例分析
Oct 11 PHP
tp5.1 框架路由操作-URL生成实例分析
May 26 PHP
imagettftext() 失效,不起作用
Mar 09 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.MVC的模板标签系统(五)
2006/09/05 PHP
PHP SPL使用方法和他的威力
2013/11/12 PHP
jquery trim() 功能源代码
2011/02/14 Javascript
Javascript 类、命名空间、代码组织代码
2011/07/31 Javascript
javascript学习笔记(一) 在html中使用javascript
2012/06/18 Javascript
javascript自定义函数参数传递为字符串格式
2014/07/29 Javascript
JS实现支持Ajax验证的表单插件
2016/03/24 Javascript
AngularJS入门教程之AngularJS表达式
2016/04/18 Javascript
js验证框架实现代码分享
2016/05/18 Javascript
微信小程序开发之数据存储 参数传递 数据缓存
2017/04/13 Javascript
Angular 向组件传递模板的两种方法
2018/02/23 Javascript
javascript原生封装一个淡入淡出效果的函数测试实例代码
2018/03/19 Javascript
详解JS中统计函数执行次数与执行时间
2018/09/04 Javascript
Node.js中package.json中库的版本号(~和^)
2019/04/02 Javascript
JavaScript动画实例之粒子文本的实现方法详解
2020/07/28 Javascript
[06:16]DOTA2守卫传承者——职业选手谈心路历程
2015/02/26 DOTA
Python编程实现的图片识别功能示例
2017/08/03 Python
Python自定义函数定义,参数,调用代码解析
2017/12/27 Python
对python for 文件指定行读写操作详解
2018/12/29 Python
Python使用socket_TCP实现小文件下载功能
2020/10/09 Python
英国排名第一的餐具品牌:Denby Pottery
2019/11/01 全球购物
Araks官网:纽约内衣品牌
2020/10/15 全球购物
物流专业大学生求职信范文
2013/10/28 职场文书
后勤岗位职责
2013/11/26 职场文书
集体备课反思
2014/02/12 职场文书
《威尼斯的小艇》教学反思
2014/02/17 职场文书
群众路线教育实践活动心得体会
2014/03/07 职场文书
励志广播稿300字(5篇)
2014/09/15 职场文书
老公保证书
2015/01/17 职场文书
2015年销售工作总结范文
2015/03/30 职场文书
硕士学位申请报告
2015/05/15 职场文书
单位同意报考证明
2015/06/17 职场文书
培根随笔读书笔记
2015/07/01 职场文书
安全事故隐患排查治理制度
2015/08/05 职场文书
python 命令行传参方法总结
2021/05/25 Python
CSS实现九宫格布局(自适应)的示例代码
2022/02/12 HTML / CSS