几个小时以来,我一直在用头撞墙,我认为这是非常基本的东西。
该查询旨在基于数组更新行 - 我觉得我不需要深入研究这里发生的事情,因为它非常简单。正在运行的查询如下所示:
$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
是一个保留字。 用反引号括起来:
UPDATE CMS
SET `order`=" . intval($mysqli->real_escape_string($listingCounter)) . "
WHERE id=" . intval($mysqli->real_escape_string($recordIDValue))