我一直在靠墙砸几个小时,我认为这些东西非常基本。
查询是为了根据数组更新一行 - 我觉得我不需要深入研究这里发生的事情,因为它非常简单。正在运行的查询如下:
$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运行 - 再次,不确定这应该具有这种效果。
非常感谢任何帮助,谢谢。
更新:
MY DB TABLE称为CMS,有问题的行是ID(整数)和Order(整数)
答案 0 :(得分:2)
问题是order
是保留字。用反引号包装它:
UPDATE CMS
SET `order`=" . intval($mysqli->real_escape_string($listingCounter)) . "
WHERE id=" . intval($mysqli->real_escape_string($recordIDValue))