语法
start transaction 或 begin 开启事务
commit 提交事务
rollback 回滚事务
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>转账功能</title></head><body><?phpif(!empty($_POST)){$dsn='mysql:host=localhost;port=3306;dbname=test;charset=utf8';$pdo=new PDO($dsn,'root','root');$out=$_POST['card_out'];$in=$_POST['card_in'];$money=$_POST['money'];$pdo->beginTransaction();$step1=$pdo->exec("update bank set balance=balance-$money where cardid='$out'");$step2=$pdo->exec("update bank set balance=balance+$money where cardid='$in'");$stmt=$pdo->query("select balance from bank where cardid='$out'");$stmt2=$pdo->query("select balance from bank where cardid='$in'");$step3=$stmt->fetchColumn()>=0?1:0;$step4=$stmt2->fetchColumn()>=0?1:0;if($step1 && $step2 && $step3 &&$step4){$pdo->commit ();//提示事务echo '转账成功';}else {$pdo->rollBack (); //回滚事务echo '转账失败';}}
