[英]Laravel 4 DB transactions not committing and rollbacking
我正在使用laravel 4并尝试使用commit和rollback函数 。 但是功能对我不起作用。
我正在关注laravel文档( https://laravel.com/docs/4.2/database#database-transactions ),但仍无法正常工作。
这是我的代码:
DB::transaction(function() use ($product)
{
DB::table('products')->insert($product);
DB::rollBack();
});
它在产品表中创建新条目。 这是错误的。
在您的示例中,只有在出现异常时,事务才会回滚。
注意:事务关闭中引发的任何异常都将导致事务自动回滚。
您必须使用DB::beginTransaction()
手动开始事务,并使用DB::rollback()
或DB::commit()
也可以在try catch语句中执行此操作。
try {
DB::beginTransaction();
// Do something
DB::commit();
} catch (\Exception $e) {
DB::rollback();
throw $e;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.