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