mysql的事务处理

事务用于保证数据的一致性,它由一组相关的DML语句组成,该组的DML语句要么全部成功,要么全部失败。
示例: 银行账单
$mysqli=new mysqli("localhost","root","","test");
if($mysqli->connect_error){
die($mysqli->connect_error);
}
//将提交设为false(事务一旦提交就没有机会回滚。)
$mysqli_autocommit(false);

$sql1="update account set balance=balance-2 where id=1";
$sql2="update account set balance=balance+2 where id=2";

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

if(!$b1||!$b2){
echo "失败";
       //回滚
      $mysqli->rollback();
}else{
echo "成功";
     //提交(一旦提交就没有机会回滚)
    $mysqli->commit();
}
$mysqli->close();

在mysql控制台可以使用事务来操作,具体步骤:
1,开启一个事务
start transaction
2,做保存点
savepoint 保存点名称
3,操作
4,可以回滚,可以提交
4.1,如果没有问题提交
commit
4.2,如果觉得有问题,就回滚
rollback to 保存点


posted @ 2015-10-08 16:15  岁月无心  阅读(157)  评论(0编辑  收藏  举报