gpt4 book ai didi

database - 如果 DB::transaction 抛出错误,Laravel 5.3 没有回滚?

转载 作者:搜寻专家 更新时间:2023-10-30 20:03:59 25 4
gpt4 key购买 nike

当我进行多次查询时,我尝试进行数据库事务。

而且我还尝试像这样捕获事务之外的异常

DB::transaction(function() {
try{
//....db queries
}catch(\Exception $e){
Log::info($e);
}
});

当这里抛出一些异常时,事务好像没有回滚,数据库中的数据已经改变了。

如果我在 catch 语句中手动执行 DB::rollBack(),我所有的数据都会很好,

这让我思考是否必须手动执行 DB::rollBack()

但我确实记得 Laravel 的文档说如果我使用 DB::transaction 来管理我的数据库查询,当异常抛出时,DB::rollBack() 会自动执行吗?

它在 Laravel 5.3 中已经改变了吗?

最佳答案

关注这个link .你不应该使用 DB::transaction() 而是将你的代码包装在 DB::beginTransactionDB::commit/DB::rollback()

希望这对你有用!

关于database - 如果 DB::transaction 抛出错误,Laravel 5.3 没有回滚?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41584359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com