【问题标题】:Laravel 4 DB transactions not committing and rollbackingLaravel 4 DB 事务未提交和回滚
【发布时间】: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();
 });

它在产品表中创建新条目。这是错误的。

【问题讨论】:

    标签: php database laravel laravel-4 transactions


    【解决方案1】:

    在您的示例中,事务只会在出现异常时回滚。

    注意:事务闭包中抛出的任何异常都会导致事务自动回滚。

    您必须手动以DB::beginTransaction() 开始您的事务并以DB::rollback()DB::commit() 结束它

    也可以在 try catch 语句中执行此操作。

    try {
        DB::beginTransaction();
    
        // Do something
    
        DB::commit();
    } catch (\Exception $e) {
        DB::rollback();
        throw $e;
    }
    

    【讨论】:

      猜你喜欢
      • 2011-10-01
      • 2012-12-24
      • 2013-11-22
      • 1970-01-01
      • 1970-01-01
      • 2013-11-20
      • 1970-01-01
      • 2016-03-07
      • 1970-01-01
      相关资源
      最近更新 更多