上代码:tp方法进行更新操作
M('hotel_commission')
->join('site_order on site_hotel_commission.order_id = site_order.order_id')
->where('site_order.num=1')
->data('site_hotel_commission.status = 2')
->save();
运行后没有报错也没有修改记录;我看不出来哪里有问题。于是我用query测试了一下
M()->query("update site_hotel_commission,site_order set site_hotel_commission.status=2 where site_order.num = 1 and site_hotel_commission.order_id = site_order.order_id");
运行后能修改记录,但是报错了:
这是一个非常奇怪的问题。。。于是我特意在黑窗口中运行了mysql 将上面query的sql语句 测试了下,结果如下:
我的天。。黑窗口中运行这条sql语句完全没问题啊!为什么tp里面query会报错?虽然也能修改。。。还有为什么join()save()操作又不报错不修改!!!我只是想关联下表然后修改个字段啊。。怎么这么难!大晚上被这个问题给整的头大了,深夜发问。望大神来拯救。。。。
是不是query()一般是执行select语句的,你用execute()看看