在下面的代码中,$keyresult和$valueresult是逗号分隔的列列表,在我的db中,以及我想在标识行中放入的值。问题是,代码没有执行我希望它做的事情,并且正在返回查询中的语法错误。
$q3 = "UPDATE post SET ($keyresult) VALUES ('$valueresult') WHERE user_id='$user_id' AND post_id='$post_id' AND post_status='active'";我怎样才能修正这个语法?
发布于 2014-06-17 19:37:46
您正在混合插入和更新语法。
$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注入非常开放.我建议调查准备好的陈述以消除这种风险。
https://stackoverflow.com/questions/24271964
复制相似问题