使用主键引用UPDATE行

时间:2013-05-07 04:34:36

标签: php mysql sql-injection

我有一个MySQL数据库,我正在尝试使用以下命令执行更新或删除命令:

$query = "UPDATE db SET this='$_POST[f_that]',this2='$_POST[f_that2]' WHERE index='$_POST[f_index]'";

每次都会返回语法错误,说明问题接近index='#'。信息来自一个表,其中输入字段与设置到数据库的值内联(内联编辑)。以这种方式输出form_index。在我的数据库中,index是主键并自动递增。

print_r() $_POST$query以确保form_index是一个数字(以及正确的数字),就是这样。

是否有一些规则我不能完全引用主键?

3 个答案:

答案 0 :(得分:3)

index是mysql中的保留字,你不能直接将它用作列名,你必须在列名周围使用`来使用这些保留字。

$query = "UPDATE db SET `this`='$_POST[f_that]',`this2`='$_POST[f_that2]' 
WHERE `index`='$_POST[f_index]'";

答案 1 :(得分:0)

index是保留字,您应该更改它或使用下面的背贴

`index`

答案 2 :(得分:0)

更改index的列名称。它在您的查询中被视为关键字。