在INSERT INTO语句中使用WHERE

时间:2013-09-29 22:04:23

标签: php mysql

我试图让用户将主题插入图像。我知道我不能将WHERE子句与INSERT INTO语句结合使用,我知道我应该使用SELECT。我是mysql的新手,我不明白我试图在谷歌搜索的结果。所以我需要一个更具体的答案;)

$classed = mysql_query("INSERT INTO images (subject) VALUES ('$_POST[subject]') WHERE image_id='$_POST[id]'");

3 个答案:

答案 0 :(得分:3)

  1. 您无法在WHERE声明中使用INSERT。如果您想要更新现有行,请考虑尝试UPDATE;如果没有INSERT,则可以WHERE尝试插入新行。

  2. 不要使用mysql_query函数,因为它已弃用。请尝试使用PDOmysqli_query代替。

  3. 请勿 在查询中使用未经过滤的输入。

答案 1 :(得分:2)

  • 如果您已经拥有image_id价值,那么您的UPDATE表格INSERT应该mysql_real_escape_string()

  • 您应该在将变量插入表格之前将其转义。通过 $subject = mysql_real_escape_string($_POST['subject']) ; $id =mysql_real_escape_string($_POST['id'] ) ; $classed = mysql_query("UPDATE images SET subject = '".$subject."' WHERE image_id='".$id."' ");

试试这个:

{{1}}

答案 2 :(得分:1)

您不能在现有行中使用INSERT,请尝试UPDATE SQL将类似于

UPDATE images SET subject = '...' WHERE id=x;