如何在 laravel 5.4 中使用 SQL 交易?
how to use SQL Transaction in laravel 5.4?
如何在此代码示例中使用 Sql 事务。我试过了,但交易不正常。我的数据库引擎是 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
我无法解释这种更好的方式..所以请阅读代码并更正它。如果我错了。问题是,如果主题模型查询失败,则不会回滚。
你忘了 DB::commit();
没有这个你的代码将无法工作。
你应该在 foreach() 语句后写 DB:commit
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);
}
DB::commit();
} //sql transaction end
如何在此代码示例中使用 Sql 事务。我试过了,但交易不正常。我的数据库引擎是 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
我无法解释这种更好的方式..所以请阅读代码并更正它。如果我错了。问题是,如果主题模型查询失败,则不会回滚。
你忘了 DB::commit();
没有这个你的代码将无法工作。
你应该在 foreach() 语句后写 DB:commit
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);
}
DB::commit();
} //sql transaction end