日期:2014-05-16  浏览次数:20768 次

MySQLi使用事务

<?php

$mysqli=new MySQLi("localhost","root","","test");
if($mysqli->connect_error){
 die($mysqli->connect_error);
}

//禁止自动提交
$mysqli->autocommit(false);

$sql1="upadte account set balance=balance-2 where id=1";
$sql2="upadte account1 set balance=balance+2 where id=2";//account1不存在

$b1=$mysqli->query($sql1);
$b2=$mysqli->query($sql2);

if(!$b1||!$b2){
 //如果两个操作中存在一个出现异常,则数据库数据恢复到原始
 $mysqli->roolback();
}else{
 //如果两个操作都成功,则真正提交,修改数据库数据
 $mysqli->commit();
}

$mysqli->close();

?>