致命错误: 未捕获的 PDO异常: SQLSTATE[42000]: 语法错误或访问冲突: 1064 SQL 语法中存在错误;

致命错误: 未捕获的 PDO异常: SQLSTATE[42000]: 语法错误或访问冲突: 1064 SQL 语法中存在错误;查看与您的MySQL服务器版本相对应的手册,以获取正确的语法 admin_id,以便在/www/wwwroot/iapp.cmy0.com/admin/api/update_list.php:18堆栈跟踪:#0 /www/wwwroot/iapp.cmy0.com/admin/api/update_list.php(18):PDOStatement->execute() #1 {main} 中抛出/www/wwwroot/iapp.cmy0.com/admin/api/update_list.php18

最近在更新创梦IAPP后台管理系统,主要是对数据库进行了重构。重构之后肯定还得改一下api接口,然后在修改数据库查询语句的时候出现了一个问题,就如上面引言所示。

出现的问题就在下面这条mysql语句,相信不少人都已经看出来了问题在哪里。

myaqlupdate

仔细检查了一遍sql语句,发现并没有问题。我打印出$admin[‘id’]这个变量,发现变量并不是空的,甚至我拿了另一条sql语句来对比,完全一样的代码,就这个出现报错。

mysql1

最后,我突然想到我查询的这个update数据表是数据库关键字!!update的mysql的更新语句,知道了问题的所在,那就好解决了。

解决办法

在MySQL中,为了区分MySQL的关键字与普通字符,MySQL引入了一个反引号。
英文键盘输入环境下,按图示按钮输入反引号 `,也就是tab键上面那个键。

最后的解决办法就是如下图,在update左右两边加上反引号就可以了。

endmysql

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片