0

几个小时以来,我一直在为一些我认为非常基本的东西撞墙。

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

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

4

1 回答 1

2

问题是这order是一个保留字。用反引号括起来:

UPDATE CMS
    SET `order`=" . intval($mysqli->real_escape_string($listingCounter)) . "
    WHERE id=" . intval($mysqli->real_escape_string($recordIDValue))
于 2013-09-07T16:05:20.697 回答