我试图让用户将主题插入图像。我知道我不能将WHERE子句与INSERT INTO语句结合使用,我知道我应该使用SELECT。我是mysql的新手,我不明白我试图在谷歌搜索的结果。所以我需要一个更具体的答案;)
$classed = mysql_query("INSERT INTO images (subject) VALUES ('$_POST[subject]') WHERE image_id='$_POST[id]'");
答案 0 :(得分:3)
您无法在WHERE
声明中使用INSERT
。如果您想要更新现有行,请考虑尝试UPDATE
;如果没有INSERT
,则可以WHERE
尝试插入新行。
不要使用mysql_query
函数,因为它已弃用。请尝试使用PDO或mysqli_query代替。
请勿 在查询中使用未经过滤的输入。
答案 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;