几个小时以来,我一直在用头撞墙,做一些我认为非常基本的事情。
该查询旨在根据数组更新一行 - 我觉得我不需要深入研究这里发生的事情,因为它非常简单。正在运行的查询如下:
$mysqli->query("UPDATE CMS SET
order=" . intval($mysqli->real_escape_string($listingCounter)) .
" WHERE id=" . intval($mysqli->real_escape_string($recordIDValue)))
or die('Error, insert query failed :'.$mysqli->errno."
<br/> Error : '".$mysqli->error."'");
我使用 intval 纯粹是因为我觉得这是一个格式错误 - 与 real_escape_string 相同。但错误仍然是一样的:
Error, insert query failed :1064
Error : 'You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for
the right syntax to use near 'order=1 WHERE id=6' at line 1'
我希望这是我错过的非常简单的事情,但我无法想到这个问题。我正在运行 MYSQL 5.5 和 PHP 5.4 - 而且这个查询正在 AJAX 上运行 - 再次不确定这是否会产生这种效果。
任何帮助将不胜感激,谢谢。
更新:
我的数据库表称为 CMS,相关行是 ID(整数)和 Order(整数)
最佳答案
问题是 order
是一个保留字。将其用反引号括起来:
UPDATE CMS
SET `order`=" . intval($mysqli->real_escape_string($listingCounter)) . "
WHERE id=" . intval($mysqli->real_escape_string($recordIDValue))
关于php - 通过 AJAX 进行 SQL 更新查询的语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18675206/