php+Mysqli利用事务处理转账问题实例
本文实例讲述了php+Mysqli利用事务处理转账问题的方法。分享给大家供大家参考。具体实现方法如下:
<?php
header("Content-type:text/html;charset=utf-8");
$mysqli=newmysqli("localhost","root","064319","php");
$mysqli->set_charset("utf8");
if($mysqli->connect_errno){
die('数据库连接失败'.$mysqli->connect_error);
}
$mysqli->autocommit(false);//自动提交模式设为false
$flag=true;//事务是否成功执行的标志
$query="updateaccountsetbalance=balance-1000whereid=3";
$result=$mysqli->query($query);
$affected_count=$mysqli->affected_rows;
if(!result||$affected_count==0){//失败
$flag=false;
}
$query="updateaccountsetbalance=balance+1000whereid=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程序设计有所帮助。