时间:2021-05-26
本文实例讲述了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');希望本文所述对大家的php程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了php下pdo的mysql事务处理用法。分享给大家供大家参考。具体分析如下:php+mysql事务处理的几个步骤:1.关闭自动提交2.开启事务处理
本文实例讲述了php+Mysqli利用事务处理转账问题的方法。分享给大家供大家参考。具体实现方法如下:set_charset("utf8");if($mysql
本文实例讲述了php实现mysql事务处理的方法。分享给大家供大家参考。具体分析如下:要实现本功能的条件是环境mysql5.2/php5支持事务的table类型
本文实例讲述了PHP+MySQL高并发加锁事务处理问题解决方法。分享给大家供大家参考,具体如下:1、背景:现在有这样的需求,插入数据时,判断test表有无use
本文实例讲述了php实现基于pdo的事务处理方法。分享给大家供大家参考,具体如下:实例1:try{}catch(){}形式setAttribute(PDO::A