<?php
header('content-type:text/html;charset=utf-8');
$mysqli=new mysqli('localhost','root','','test');
if($mysqli->errno)
{
die('Connect Error'.$mysqli->error);
}
$mysqli->set_charset('utf8');
$mysqli->autocommit(FALSE);//1则开启自动提交 0 则关闭
//关闭自动提交功能
//比如实现一个转账功能 king有1000 块,queen有500
//king向queen转账200 则需要同时实现 1000-200 500+200
//所以需要关闭自动提交功能
$sql="UPDATE account SET money=money-200 WHERE username='king'";
$res=$mysqli->query($sql);
$res_affect=$mysqli->affected_rows;
$sql1="UPDATE account SET money=money+200 WHERE username='queen'";
$res1=$mysqli->query($sql1);
$res1_affect=$mysqli->affected_rows;
if($res && $res_affect>0 && $res1 &&$res1_affect>0)
{
$mysqli->commit(); //提交事务
echo "转账成功";
$mysqli->autocommit(TRUE);//开启自动提交
}
else
{
$mysqli->rollback();//回滚事务
echo '转账失败';
}
$mysqli->close();
利用事物处理来解决转账问题
最新推荐文章于 2021-08-20 13:31:37 发布