Laravel 4 DB 事务未提交和回滚
Posted
技术标签:
【中文标题】Laravel 4 DB 事务未提交和回滚【英文标题】:Laravel 4 DB transactions not committing and rollbacking 【发布时间】:2019-05-29 01:30:42 【问题描述】:我正在使用 laravel 4 并尝试使用 提交和回滚功能。但是功能对我不起作用。
我正在关注 laravel 文档 (https://laravel.com/docs/4.2/database#database-transactions),但它仍然无法正常工作。
这是我的代码:
DB::transaction(function() use ($product)
DB::table('products')->insert($product);
DB::rollBack();
);
它在产品表中创建新条目。这是错误的。
【问题讨论】:
【参考方案1】:在您的示例中,事务只会在出现异常时回滚。
注意:事务闭包中抛出的任何异常都会导致事务自动回滚。
您必须手动以DB::beginTransaction()
开始您的事务并以DB::rollback()
或DB::commit()
结束它
也可以在 try catch 语句中执行此操作。
try
DB::beginTransaction();
// Do something
DB::commit();
catch (\Exception $e)
DB::rollback();
throw $e;
【讨论】:
以上是关于Laravel 4 DB 事务未提交和回滚的主要内容,如果未能解决你的问题,请参考以下文章