zoukankan      html  css  js  c++  java
  • PHP+Mysql基于事务处理实现转账功能的方法

    • <?php
    •   header("Content-Type:text/html;charset=utf-8");
    •   $mysqli=new mysqli("localhost","root","","test");
    •   if(mysqli_connect_errno())
    •   {
    •   printf("连接失败:%s<br>",mysqli_connect_error());
    •   exit();
    •   }
    •   $success=TRUE;
    •   $price=8000;
    •   $result=$mysqli->query("select cash from account where name='userA'");
    •   while($row=$result->fetch_assoc())
    •   {
    •   $value=$row["cash"];
    •   echo $value;
    •   }
    •   $mysqli->autocommit(0);
    •   if($value>=$price){
    •   $result=$mysqli->query("UPDATE account set cash=cash-$price where name='userA'");
    •   }else {
    •   echo '余额不足';
    •   exit();
    •   }
    •   if(!$result or $mysqli->affected_rows!=1)
    •   {
    •   $success=FALSE;
    •   }
    •   $result=$mysqli->query("UPDATE account set cash=cash+$price where name='userB'");
    •   if(!result or $mysqli->affected_rows!=1){
    •   $success=FALSE;
    •   }
    •   if($success)
    •   {
    •   $mysqli->commit();
    •   echo '转账成功!';
    •   }else
    •   {
    •   $mysqli->rollback();
    •   echo "转账失败!";
    •   }
    •   $mysqli->autocommit(1);
    •   $query="select cash from account where name=?";
    •   $stmt=$mysqli->prepare($query);
    •   $stmt->bind_param('s',$name);
    •   $name='userA';
    •   $stmt->execute();
    •   $stmt->store_result();
    •   $stmt->bind_result($cash);
    •   while($stmt->fetch())
    •   echo "用户userA的值为:".$cash;
    •   $mysqli->close();
    • ?>
    • 数据库SQL语句如下:
    • create table account{
    •  userID smallint unsigned not null auto_increment,
    •  name varchar(45) not null,
    •  cash decimal(9,2) not null,
    •  primary key(userID)
    • )type=InnoDB;
    • insert into account(name,cash) values ('userA','2000');
    • insert into account(name,cash) values ('userB','10000');
  • 相关阅读:
    Vector 、ArrayList、LinkedList比较
    MySQL主从复制
    多浏览器兼容flv视频播放HTML
    [转]javascript对联广告、漂浮广告封装类,多浏览器兼容
    ASP获取json天气信息
    IIS6的SSL配置,如何配置SSL到登陆页,如何将SSL证书设置成受信任的证书
    Web Service初探
    算法之逆序对
    算法之数组和问题
    重读算法导论之算法基础
  • 原文地址:https://www.cnblogs.com/ghjbk/p/6753818.html
Copyright © 2011-2022 走看看