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

yipeiwu_com6年前Mysql基础

本文实例讲述了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程序设计有所帮助。

相关文章

win7+apache+php+mysql环境配置操作详解

1.php版本简介php各版本之间的区别,php版本后面一般有VC6和VC9、Thread Safe和Non Thread Safe的区别,VC6就是legacy Visual Stud...

PHP实现的mysql主从数据库状态检测功能示例

本文实例讲述了PHP实现的mysql主从数据库状态检测功能。分享给大家供大家参考,具体如下: 实例: <?php /** * 检测多个主从数据库是否挂掉 * 建立从...

php+mysqli实现批量替换数据库表前缀的方法

php+mysqli实现批量替换数据库表前缀的方法

本文实例讲述了php+mysqli实现批量替换数据库表前缀的方法。分享给大家供大家参考。具体分析如下: 在php中有时我们要替换数据库中表前缀但是又不苦于一个个表去修改前缀,这里我自己写...

php实现MySQL数据库备份与还原类实例

本文实例讲述了php实现MySQL数据库备份与还原类。分享给大家供大家参考。具体分析如下: 这是一个非常简单的利用php来备份mysql数据库的类文件,我们只要简单的在dbmange中配...

PHP中mysqli_affected_rows作用行数返回值分析

本文实例分析了PHP中mysqli_affected_rows作用行数返回值。分享给大家供大家参考。具体分析如下: mysqli中关于update操作影响的行数可以有两种返回形式: 1....