使用括号的MySQL更新语法

时间:2014-06-17 19:36:06

标签: php mysql sql sql-update syntax-error

在下面的代码中,$ keyresult和$ valueresult是我的数据库中以逗号分隔的列列表,以及我想在标识的行中放入它们的值。问题是,代码没有做我希望的事情,并且在查询中返回语法错误。

$q3 = "UPDATE post SET ($keyresult) VALUES ('$valueresult') WHERE user_id='$user_id' AND post_id='$post_id' AND post_status='active'";

如何修复此语法?

1 个答案:

答案 0 :(得分:2)

您正在混合使用INSERT和UPDATE语法。

$q3 = "UPDATE `post` SET `$keyresult` = '$valueresult' 
       WHERE user_id='$user_id' AND post_id='$post_id' AND post_status='active'";

我假设您在执行查询之前正确转义$valueresult$user_id$post_id 。如果没有,并且这些是用户提供的值,则您对SQL injections持开放态度。我建议调查prepared statements以消除这种风险。