这种情况很少见,但出于某种原因,我需要一个外部的 try catch 来达到目的。所以我无法控制个别交易。所以我只有一个外部 catch 语句。catch(Exception $e) { DB::rollback(); Log:error($e->getMessage());}但是,如果在任何事务尚未启动之前出现错误,会发生什么。回滚是否会造成意外损坏?
2 回答
慕的地8271018
TA贡献1796条经验 获得超4个赞
您可以致电DB::transactionLevel()获取计数:
catch(Exception $e) {
if (0 < DB::transactionLevel()) {
DB::rollback();
}
Log:error($e->getMessage());
}
参考:Illuminate\Database\ConnectionInterface | Laravel API
犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
ROLLBACK
适用于“事务”,而不是“表”。一个事务中可能涉及多个表,甚至可能还没有涉及到表。
ROLLBACK
准备做任何需要的事情,甚至包括“什么都不做”。不用担心。
- 2 回答
- 0 关注
- 99 浏览
添加回答
举报
0/150
提交
取消