在下面的代码中,$ keyresult和$ valueresult是我的数据库中以逗号分隔的列列表,以及我想在标识的行中放入它们的值。问题是,代码没有做我希望的事情,并且在查询中返回语法错误。
$q3 = "UPDATE post SET ($keyresult) VALUES ('$valueresult') WHERE user_id='$user_id' AND post_id='$post_id' AND post_status='active'";
如何修复此语法?
答案 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以消除这种风险。