使用语法通过AJAX问题进行SQL Update查询

时间:2013-09-07 16:02:37

标签: php mysql sql ajax

我一直在靠墙砸几个小时,我认为这些东西非常基本。

查询是为了根据数组更新一行 - 我觉得我不需要深入研究这里发生的事情,因为它非常简单。正在运行的查询如下:

$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(整数)

1 个答案:

答案 0 :(得分:2)

问题是order是保留字。用反引号包装它:

UPDATE CMS
    SET `order`=" . intval($mysqli->real_escape_string($listingCounter)) . "
    WHERE id=" . intval($mysqli->real_escape_string($recordIDValue))