2013-11-26 53 views
0

我在我的PHP更新查詢中遇到了一個錯誤...我已經看到了其他人的錯誤,我幾乎可以肯定我不會犯同樣的舊錯誤,但我可能會忽略其中一個。MySQL UPDATE語法錯誤 - 一切正常?

這是我的代碼:

$sQuery = "UPDATE clientes 
     SET 
      Nombre = '$_POST[Nombre]', 
      Apellidos = '$_POST[Apellidos]', 
      Telefono = '$_POST[Telefono]', 
      Email = '$_POST[Email]', 
     WHERE ID= $sIDCliente"; 

首先,我認爲它有與$ _ POST的問題,但是當我echo'ed查詢,這是還好吧。我得到的錯誤是這一個:

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= F17DEF774C' at line 7 

那麼,這就是頁面輸出。謝謝大家的手:)

回答

5

你有行中的額外的逗號之前

Email = '$_POST[Email]', 

應該

Email = '$_POST[Email]' 

編輯:

而且我要指出,你最好使用參數化查詢,然後綁定這些參數。它使您的數據庫交易更加安全。

因此,在你的情況應該是這樣的

$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world'); 
$stmt = $mysqli->prepare(" 
     UPDATE clientes 
     SET 
      Nombre = ?, 
      Apellidos = ?, 
      Telefono = ?, 
      Email = ? 
     WHERE ID= ? 
     "); 
$stmt->bind_param('ssssd', $_POST[Nombre], $_POST[Apellidos], $_POST[Telefono], $_POST[Email], $sIDCliente); 
$stmt->execute(); 
+0

它現在。該死的,我覺得很愚蠢。謝謝! –

+0

@HéctorSalazar我做了同樣的事情太多次了。 – echochamber

+1

並且使用準備好的語句也會轉義任何嵌入的引號 – hd1