Laravel的事务处理求解.
程序员文章站
2022-05-20 14:47:26
...
public function store(Request $request, $id)
{
$externalAccount = ExternalAccounts::find($id);
DB::beginTransaction();
try {
$externalAccount->fund_number = 999;
$externalAccount->capital_balance = 'kjhkjhkj';
$externalAccount->save();
DB::commit();
} catch (Exception $e){
DB::rollback();
throw $e;
}
}
第一次用Laravel。。
capital_balance字段为int类型,我故意传进去字符串类型,这样写入肯定会出错的。
但是上面的fund_number居然写入成功了,没有回滚= =。。
求老司机解答。。
mysql引擎没错,是InnoDB。
回复内容:
public function store(Request $request, $id)
{
$externalAccount = ExternalAccounts::find($id);
DB::beginTransaction();
try {
$externalAccount->fund_number = 999;
$externalAccount->capital_balance = 'kjhkjhkj';
$externalAccount->save();
DB::commit();
} catch (Exception $e){
DB::rollback();
throw $e;
}
}
第一次用Laravel。。
capital_balance字段为int类型,我故意传进去字符串类型,这样写入肯定会出错的。
但是上面的fund_number居然写入成功了,没有回滚= =。。
求老司机解答。。
mysql引擎没错,是InnoDB。
我估计是mysql的坑,你拿生成好的sql直接到mysql里面去执行一下看看