SQL WHERE语句不工作

问题描述:

我写了下面的代码:SQL WHERE语句不工作

$sql="INSERT INTO donate (amount, reward) VALUES ('$amount', '$reward') WHERE id = ('$id')"; 

,但我得到这个错误:

Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id = ('19')' at line 1

我不知道我做错了什么,谁能帮助我有了这个?

+2

要么你想更新现有行,或者你想插入一个新的。 'where'只在更新时有意义,而不是在插入时。 – Nanne 2014-09-29 12:01:50

+0

如果id = 19,是否要插入表中? – 2014-09-29 12:06:54

+1

这不是正确的SQL语法。你想达到什么目的? – Mureinik 2014-09-29 12:17:54

你不能用WHERE子句做INSERT。如果您需要WHERE条件,则需要执行UPDATE

你可以做:

$sql="UPDATE donate SET amount='$amount', reward='$reward' WHERE id = '$id'"; 
+0

你的前两句话是错误的,但答案的其余部分是正确的。 (我没有downvote答案。) – 2014-09-29 12:04:46

+0

要添加到此,当更新多个ids'“更新捐赠SET金额='$金额',奖励='$奖励'WHERE ID IN([逗号分隔的ID列表]) “'。 @Jenz我也不知道为什么有人会downvote这个答案。 – ConnectedSystems 2014-09-29 12:05:05

+0

@ Takuy​​a ..为什么用逗号分隔id's.在问题中我看不到任何逗号分隔值。 – Jenz 2014-09-29 12:07:22

什么你问的是UPDATE而非INSERT

INSERT语法不能有WHERE子句。只有当您使用INSERT INTO...SELECT语句时,才会发现INSERT具有WHERE子句。

您可以尝试

$sql="UPDATE donate SET amount='" . $amount. "', reward='" .$reward. "' WHERE id='" .$id. "'"; 

当你在这个时间记录,这样你就不会在那里使用它是不是在你的数据库表中找到插入记录。

其次你使用其中的原因只能在现有的数据库记录像UPDATE或DELETE记录.....

我希望帮你