MySql 更新一行数据 只更新到一部分字段 有字段没更新到
$order = Db::name('order')->field('id,kcid,user_id,type,status,paytime,o2o')->where(['ordersn' => $data['orderId']])->lock(true)->where('status', '0')->find();//查询加了锁
$upd = ['status' => '1', 'paytime' => time(), 'transaction_id' => $transaction_id,'cmbOrderId'=>$cmbOrderId];
Db::name('order')->where('paytime', 0)->where('id', $order_id)->update($upd);//更新
transaction_id更新到了, cmbOrderId却未更新,查看日志确保两个都是有数据,且在前面打开了事务
关于 LearnKu
可否看一下
transaction_id和cmbOrderId这两个字段更新前和更新后的值?还有你这里的完整代码。还有你的
->name()、->field()都是哪来的方法?这个->find()用法也不对啊,不传id值的话会报错的。报错以后,看下是不是事务后面进行了transaction_id字段的修改。你这是tp的吧
是不是批量赋值的问题呀。你设置一下批量赋值!!
已解决 ,有两个地方同时修改了,另一个地方未修改到cmbOrderId