2013-04-17 174 views
1

我試圖運行下面的查詢:與綁定PHP PDO UPDATE查詢參數

$sth = "UPDATE `users` SET users_password VALUES (:hash) WHERE users_id = $users_id"; 
$q = $conn->prepare($sth); 
$q->execute(array(':hash'=>$hash)); 

但即時得到以下幾點:

Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 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 'VALUES ('$2y$12$Ao46iC7W9Lj8FFfSmAaeoeQs9O.3QRVtDbHAyvpzH90YIUN61ma8i') WHERE us' at line 1' 

任何想法?

(是的代碼是不是在一個try,catch塊還只是在試驗他們的幾件事情時刻)

+1

的'VALUES'子句屬於'INSERT'查詢,而不屬於'UPDATE'。 – mario

+2

爲什麼不綁定users_id? –

+0

哇謝謝馬里奧,真的很有幫助感謝您的解決方案... – twigg

回答

0

改變這種

$sth = "UPDATE `users` SET users_password VALUES (:hash) WHERE users_id = $users_id"; 

$sth = "UPDATE `users` SET users_password = :hash WHERE users_id = $users_id"; 
+1

爲什麼downvote?至少解釋。因爲這個答案是正確的。 –

+1

這是不是我誰下了投票:)它的工作完全謝謝你。我認爲這是來自上面的馬里奧傢伙,不幸的是,像他這樣的PHP社區的人不是在這裏幫忙,而是僅僅顯示他們在編碼方面遠比他們這樣的新人有多遠,卻沒有提供任何幫助。 – twigg