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
我不知道我做错了什么,谁能帮助我有了这个?
你不能用WHERE子句做INSERT。如果您需要WHERE条件,则需要执行UPDATE
。
你可以做:
$sql="UPDATE donate SET amount='$amount', reward='$reward' WHERE id = '$id'";
你的前两句话是错误的,但答案的其余部分是正确的。 (我没有downvote答案。) – 2014-09-29 12:04:46
要添加到此,当更新多个ids'“更新捐赠SET金额='$金额',奖励='$奖励'WHERE ID IN([逗号分隔的ID列表]) “'。 @Jenz我也不知道为什么有人会downvote这个答案。 – ConnectedSystems 2014-09-29 12:05:05
@ Takuya ..为什么用逗号分隔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记录.....
我希望帮你
要么你想更新现有行,或者你想插入一个新的。 'where'只在更新时有意义,而不是在插入时。 – Nanne 2014-09-29 12:01:50
如果id = 19,是否要插入表中? – 2014-09-29 12:06:54
这不是正确的SQL语法。你想达到什么目的? – Mureinik 2014-09-29 12:17:54