如何在laravel 5.4中使用SQL Transaction?

时间:2017-07-11 10:30:11

标签: php mysql mysqli laravel-5 sqltransaction

如何在此代码示例中使用Sql Transaction。我试过,但交易不正常。我的数据库引擎是InnoDB。

 DB::transaction(function() use($request  ) {
 $user = User::$request->only('name','mobile','address');
 $userSave = User::create($user)->id;

 foreach ( $request->subjects as $items)
 {

  $data = User::$request->only('name');
   $data['student_id'] = $userSave
    $subject= Subject::create($data);

   }
  } //sql transaction end

我无法解释这个更好的方式..所以请阅读代码并更正它。如果我错了问题是,如果主题模型查询失败,则不回滚。

1 个答案:

答案 0 :(得分:1)

您忘记了使用DB :: commit();

否则,您的代码将无法正常工作。

您应该在foreach()语句之后编写DB:commit

x = 10

def p():
    global x
    print(x)
    x += 10

p()
Out: 
10