为了账号安全,请及时绑定邮箱和手机立即绑定

navicat可正确执行sql语句,php中却报错Fatal error:non-object

navicat可正确执行sql语句,php中却报错Fatal error:non-object

PHP
PIPIONE 2019-03-05 08:50:19
如题,navicat可正确执行sql语句,php中却无法执行报错。我有一条sql语句,处理过期未支付订单,order_state=0 未支付,order_state=4过期 诡异的是,我在navicat和cmd命令行中执行,都没有任何错误可以执行。但是在php中却报错:Fatal error: Call to a member function execute() on a non-object 相关代码 sql语句: UPDATE seat_table a LEFT JOIN order_table b ON a.seat_id = b.seat_id SET a.count = a.count + 1, b.order_state = '4' WHERE a.count < 50 AND b.seat_id IN ( SELECT c.seat_id FROM ( SELECT seat_id FROM order_table WHERE DATE_ADD( order_time, INTERVAL 15 MINUTE ) < now() AND order_state = '0' ) c ) php语句: $stmt = $mysqli->prepare("update seat_table a LEFT JOIN order_table b on a.seat_id = b.seat_id set a.count = a.count + 1,b.order_state = '4' WHERE a.count < 50 and b.seat_id in (SELECT c.seat_id FROM (SELECT seat_id FROM order_table WHERE DATE_ADD( order_time,INTERVAL 15 MINUTE ) < now() AND order_state = '0') c)"); if ($stmt->execute()) { // 更新成功 $stmt->close(); } else { // 更新失败 die("500"); } 运行结果 navicat中:执行正确 小程序连接php后台则报错: 然而更加奇怪的是,我将这句sql语句分为两段: 完整版: update seat_table a LEFT JOIN order_table b on a.seat_id = b.seat_id set a.count = a.count + 1,b.order_state = '4' WHERE a.count < 50 and b.seat_id in (SELECT c.seat_id FROM (SELECT seat_id FROM order_table WHERE DATE_ADD( order_time,INTERVAL 15 MINUTE ) < now() AND order_state = '0') c) 分为两段:in()语句里面的单独提取出来1、用in(1)代替是因为简便同时我第二部分查找出来的就是一条记录值为1 update seat_table a LEFT JOIN order_table b on a.seat_id = b.seat_id set a.count = a.count + 1,b.order_state = '4' WHERE a.count < 50 and b.seat_id in(1) 2、 SELECT c.seat_id FROM (SELECT seat_id FROM order_table WHERE DATE_ADD( order_time,INTERVAL 15 MINUTE ) < now() AND order_state = '0') c) 这两部分都能够在navicat和php中正确执行。所以可以排除我的php版本不支持sql语句中某些特性的原因。我搜索了很多相关问题均没有解决,或许是我疏忽了什么,但是能解决的话将帮我很大忙,非常感谢
查看完整描述

3 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

打印下$mysqli->error;看看是不是有报错信息

查看完整回答
反对 回复 2019-03-18
?
翻阅古今

TA贡献1780条经验 获得超5个赞

show variables like '%log_error%'; 看下错误日志

查看完整回答
反对 回复 2019-03-18
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

打印下$mysqli

查看完整回答
反对 回复 2019-03-18
  • 3 回答
  • 0 关注
  • 804 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信