這種情況很少見,但出于某種原因,我需要一個外部的 try catch 來達到目的。所以我無法控制個別交易。所以我只有一個外部 catch 語句。catch(Exception $e) { DB::rollback(); Log:error($e->getMessage());}但是,如果在任何事務尚未啟動之前出現錯誤,會發生什么?;貪L是否會造成意外損壞?
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 關注
- 134 瀏覽
添加回答
舉報
0/150
提交
取消
