2014-09-29 108 views
-1

我寫了下面的代碼: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

回答

2

你不能用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

0

什麼你問的是UPDATE而非INSERT

0

INSERT語法不能有WHERE子句。只有當您使用INSERT INTO...SELECT語句時,纔會發現INSERT具有WHERE子句。

您可以嘗試

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

當你在這個時間記錄,這樣你就不會在那裏使用它是不是在你的數據庫表中找到插入記錄。

其次你使用其中的原因只能在現有的數據庫記錄像UPDATE或DELETE記錄.....

我希望幫你