如何在此代码示例中使用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
我无法解释这个更好的方式..所以请阅读代码并更正它。如果我错了问题是,如果主题模型查询失败,则不回滚。
答案 0 :(得分:1)
您忘记了使用DB :: commit();
否则,您的代码将无法正常工作。
您应该在foreach()语句之后编写DB:commit
x = 10
def p():
global x
print(x)
x += 10
p()
Out:
10