2013年4月10日星期三

php的事务处理笔记

<?php
    
//数据库指令
    
start transaction//开启一个事务
    
savepoint a;        //建立一个保存点
    
delete/update/insert;  //处理事务
    
savepoint b;
    
delete/update/insert;
    
rollback to a/b;    //回滚,只能回滚到其中一个保存点,一旦回滚,另外的保存点将被冲掉,所以只有一次回滚机会
    
commit;        //提交,一旦提交,前面的保存点都将被冲掉,不能再回滚

    
事务的特点:
    
不可分割 atomicity
    一致性   consistency
    隔离性   isolation
    持久性     durability

    
//php处理
    
$mysqli->autocommit(false);  //先将自动提交置为false
    
$res=mysqli->multi_query($sql);  //批量处理sql语句
    
if(!$res){
        
$mysqli->rollback();  //执行结果为false就回滚
    
}else{
        
$mysqli->commit();  //否则就提交
    
}
    
$res->free();   //如果$res是布尔值就不需要释放
    
$conn->close(); ?>

没有评论:

发表评论