事务的处理
程序 A执行完成后 再执行B 当AB同时执行成功后 才算完成;
其中一项失败,执行回滚;
自动控制事务
public function delete(){
//由于第二条数据有问题没有执行成功,只执行第一条
Db::table('user')->delete(1);
Db::table('user')->deketess(2);
//由于第二条数据有问题,两条数据都不出执行
Db::transaction(function(){
Db::table('user')->delete(1);
Db::table('user')->deketess(2);
}
}
手动自行事务
pulbic function delete()
{
//启动事务
Db::startTrans();
try{
$res = Db::table("user")->delete(1);
if(!$res){
throw new Exception('删除失败');
}else{
throw new Exception('删除成功');
}
//提交事务
Db::commit();
} catch (Exception $e) {
dump($e->getMessage());
//回滚事务
Db::rollback();
}
}