DB::beginTransaction();
try
{
//数据库
insert into TableA;
update TableB;
if(true) {
throw new \Exception('ErrMsg');
}
} catch(Exception $e) {
DB::rollback();
//addLog 日志记录
return false;
} finally {
DB::commit();
}
return true;
现在发现一个问题,进入到catch模块的时候,日志记录下来了,然后tableA插入记录也插入进去了
貌似DB::rollback(),并没有回滚成功,有人在工作中遇到过这种状况嘛??
求分享啊,,,
finally的作用 写个测试代码就知道了
结果
很明显了, catch 里面 rollback 其实是运行了,然后 finally 里 也 commit
至于为什么 rollback 了还可以 commit ,这个我就不清楚了。