问题
在修改项目时,遇到一个新旧交替的地方,事务内既有sql语句,又有tp的模型对象,
导致程序虽然能正常运行,sql语句也都是正常的,但是因为修改sql的方式不同,从而使模型修改的数据始终会被回滚
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| Db::startTrans(); try{ Db::name('user_bowl')->where('user_id',$user_id)->update(['bowl'=>$after,'updatetime'=>$time]); Db::name('user_bowl_log')->insert(['user_id'=>$user_id,'before'=>$before,'after'=>$after,'memo'=>$memo,'createtime'=>$time]);
$Coupons = \addons\shopro\model\Coupons($id); $Coupons->status = 1; $Coupons::save();
Db::commit(); } catch (\Exception $e) { Db::rollback(); return false; }
|
运行上述代码,不会报任何错误,检查数据库,除了Coupons
模型对应的数据表,其他的表数据都正常改变了。
最后不得已,只好修改模型方法为db::name()
的方式,才正常。
具体原因,就不得而知了