首页 > 代码库 > mysql事务处理

mysql事务处理

有一张银行账号表

create table account
(id int primary key,
balance float);
 
现在有一段php程序要完成  1 10 元钱,转到 2号账号上
事务
基本:事务用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml语句要么全部成功,要么全部失败。如:网上转账就是典型的要用事务来处理,用以保证数据的一致性
 
 
现在我们使用事务来完成上面的代码
 
代码:
 1 <?php 2        3        $mysqli=new MySQLi("localhost","root","hsp123","test"); 4        if($mysqli->connect_error){ 5                6               die($mysqli->connect_error); 7        } 8        9        //将提交设为false[事务一旦提交就没有机会回滚10        $mysqli->autocommit(false);11        //-> savepoint a;会把但前情况记录12        $sql1="update account set balance=balance-2 where id=1";13        $sql2="update account2 set balance=balance+2 where id=2";14        $b1=$mysqli->query($sql1) ;15        $b2=$mysqli->query($sql2) ;16       17        if(!$b1||!$b2){18               echo "失败,回滚".$mysqli->error;19               //回滚!20               $mysqli->rollback();21        }else{22               //提交[一旦提交没有机会回滚23               $mysqli->commit();24        }25        $mysqli->close();26        //显示控制台27 ?>

? mysql控制台可以使用事务来操作,具体步骤如下

 
1.      开启一个事务
start transaction
2.      做保存点
savepoint 保存点名称
 
3.      操作....
4.      可以回滚,可以提交
4.1    如果没有问题提交
commit
4.2    如果你觉得有问题,就回滚
rollback to 保存点.
 
      事务的acid特性
原子性,一致性,持久性,隔离性.

mysql事务处理