我试图让用户在图像中插入主题。我知道我不能将WHERE子句与INSERT INTO语句结合使用,并且我知道我应该使用SELECT。我对mysql非常陌生,我不明白我试图在谷歌上搜索的结果。所以,我需要一个更加明确的答案;)在INSERT INTO语句中使用WHERE
$classed = mysql_query("INSERT INTO images (subject) VALUES ('$_POST[subject]') WHERE image_id='$_POST[id]'");
我试图让用户在图像中插入主题。我知道我不能将WHERE子句与INSERT INTO语句结合使用,并且我知道我应该使用SELECT。我对mysql非常陌生,我不明白我试图在谷歌上搜索的结果。所以,我需要一个更加明确的答案;)在INSERT INTO语句中使用WHERE
$classed = mysql_query("INSERT INTO images (subject) VALUES ('$_POST[subject]') WHERE image_id='$_POST[id]'");
不能在现有行使用INSERT
,尝试UPDATE
的SQL将会像
UPDATE images SET subject = '...' WHERE id=x;
这就是我要找的。这个对我有用。正如我所说,我对Mysql非常陌生。学了很多,谢谢。 –
考虑接受echo_Me答案,而不是更好,更完整,包含php代码并以适当的方式处理用户输入。 –
不能在使用WHERE
你INSERT
声明。如果想要更新现有行,请考虑尝试UPDATE
;如果没有WHERE
,则尝试使用INSERT
来插入新行。
请勿使用mysql_query
函数,因为它已被弃用。请尝试使用PDO或mysqli_query。
不要有史以来在查询中使用未经过滤的输入。
如果你已经有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."' ");
'INSERT'是创建新行,'WHERE'是寻找现有行。目前还不清楚你想用这个组合来做什么。 – Barmar
千万不要在数据库查询中使用未经过滤的用户输入(SQL注入危险!) – TheWolf
您是否想要更新现有行? (恰当命名)命令是“UPDATE”。 – Ryan