<?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(); ?>
没有评论:
发表评论