-3

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

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

3 回答 3

3
  1. 你不能WHERE在你的INSERT陈述中使用。UPDATE如果要更新现有行或INSERTWHERE插入新行,请考虑尝试。

  2. 不要使用该mysql_query功能,因为它已弃用。尝试改用PDOmysqli_query

  3. 永远不要在查询中使用未经过滤的输入。

于 2013-09-29T22:12:55.820 回答
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."' ");
于 2013-09-29T22:29:04.793 回答
1

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

UPDATE images SET subject = '...' WHERE id=x;
于 2013-09-29T22:08:23.680 回答