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里面去执行一下看看