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 相关文章推荐
PHP4中实现动态代理
Oct 09 PHP
谈谈PHP语法(3)
Oct 09 PHP
PHP文本操作类
Nov 25 PHP
利用discuz自带通行证整合dedecms的方法以及文件下载
Mar 06 PHP
php 前一天或后一天的日期
Jun 28 PHP
PHP学习笔记之二 php入门知识
Jan 12 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
Jun 26 PHP
PHP+MySQL修改记录的方法
Jan 21 PHP
php数组去除空值函数分享
Feb 02 PHP
PHP实现抓取迅雷VIP账号的方法
Jul 30 PHP
PHP实现的随机红包算法示例
Aug 14 PHP
PHP获取远程http或ftp文件的md5值的方法
Apr 15 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
附件名前加网站名
2008/03/23 PHP
PHP中使用Imagick实现各种图片效果实例
2015/01/21 PHP
PHP执行linux命令常用函数汇总
2016/02/02 PHP
laravel框架的安装与路由实例分析
2019/10/11 PHP
ie和firefox不兼容的解决方法集合
2009/04/28 Javascript
js的alert样式如何更改如背景颜色
2014/01/22 Javascript
js使用for循环及if语句判断多个一样的name
2014/09/09 Javascript
使用 js+正则表达式为关键词添加链接
2014/11/11 Javascript
jQuery实现html表格动态添加新行的方法
2015/05/28 Javascript
jquery中ready()函数执行的时机和window的load事件比较
2015/06/22 Javascript
AngularJS实现树形结构(ztree)菜单示例代码
2016/09/18 Javascript
js实现下一页页码效果
2017/03/07 Javascript
ES5学习教程之Array对象
2017/04/01 Javascript
jQuery简单绑定单个事件的方法示例
2017/06/10 jQuery
vue2.0全局组件之pdf详解
2017/06/26 Javascript
基于jquery实现多选下拉列表
2017/08/02 jQuery
原生js封装的ajax方法示例
2018/08/02 Javascript
详解vue 数组和对象渲染问题
2018/09/21 Javascript
js中apply和call的理解与使用方法
2019/11/27 Javascript
JS内置对象和Math对象知识点详解
2020/04/03 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
2020/08/15 Javascript
JavaScript Html实现移动端红包雨功能页面
2021/01/10 Javascript
[03:15]DOTA2-DPC中国联赛1月22日Recap集锦
2021/03/11 DOTA
Python中import机制详解
2017/11/14 Python
Python实现登陆文件验证方法
2018/10/06 Python
python射线法判断一个点在图形区域内外
2019/06/28 Python
pandas数据拼接的实现示例
2020/04/16 Python
python实现将中文日期转换为数字日期
2020/07/14 Python
Java基础面试题
2012/11/02 面试题
酒店服务实习自我鉴定
2013/09/22 职场文书
经济与贸易专业应届生求职信
2013/11/19 职场文书
计算机毕业生求职信
2014/06/10 职场文书
在校生证明
2015/06/17 职场文书
班委竞选稿范文
2015/11/21 职场文书
使用pandas或numpy处理数据中的空值(np.isnan()/pd.isnull())
2021/05/14 Python
mysql备份策略的实现(全量备份+增量备份)
2021/07/07 MySQL