thinkphp中join关联表后后save操作出现问题

上代码: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()操作又不报错不修改!!!我只是想关联下表然后修改个字段啊。。怎么这么难!大晚上被这个问题给整的头大了,深夜发问。望大神来拯救。。。。

阅读 4.1k
2 个回答

是不是query()一般是执行select语句的,你用execute()看看

应该是语法错误了 不是语句的问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题