2013-01-06 109 views
-2

我試着在我的表更新記錄但即時通訊收到以下錯誤......更新使用記錄PHP/PDO和MySQL

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 '(`First_Name`,`Surname`,`Nicknames`' at line 1Number of rows added: Go back 

我的代碼如下....

// Connection data (server_address, database, name, poassword) 
$hostdb = 'localhost'; 
$namedb = '_co_'; 
$userdb = ''; 
$passdb = ''; 

try { 
    // Connect and create the PDO object 
$conn = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb); 
$conn->exec("SET CHARACTER SET utf8");  // Sets encoding UTF-8 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

$sql = "UPDATE `directory` (`First_Name`,`Surname`,`Nicknames`) 
     VALUES (:firstname, :surname, :nicknames) 
     WHERE ID = :cid 

     ; 



     "; 



$statement = $conn->prepare($sql); 
$statement->bindValue(":cid", $cid); 
$statement->bindValue(":firstname", $firstname); 
$statement->bindValue(":surname", $surname); 
$statement->bindValue(":nicknames", $nicknames); 
+0

您剛剛將'INSERT'語法與'UPDATE'混合在一起看起來像。出現問題時,請看手冊。幫助經常快速和手動有一些基本的語法旁邊的好信息:http://dev.mysql.com/doc/refman/5.5/en/update.html - 我必須承認,當我通過這個挖掘,我甚至在我的指尖上有互聯網和這些手冊。因此,從你有的可能性中使用,你應該能夠學得更快。 – hakre

+0

糟糕的問題。錯誤消息說明了這一切: - 檢查與您的MySQL服務器版本對應的手冊,以使用正確的語法use_ –

回答

1

您的SQL語法是錯誤的:

UPDATE `directory` 
SET `First_Name` = :firstname, `Surname` = :surname, `Nicknames` = :nicknames 
WHERE ID = :cid 
1

那不是如何的UPDATE查詢工作:

UPDATE `directory` SET `First_Name` = :firstname, `Surname` = :surname, `Nicknames` = :nicknames WHERE ID = :cid 

我建議你看看sql在一般情況下是如何工作的,因爲只是猜測不會讓你很遠。您嘗試使用的語法是INSERT語句。

+1

一個很好的建議;) – agim

1

語法的SQL更新不一樣的插入

UPDATE `directory` 
    SET `First_Name` = :firstname, 
     `Surname` = :surname, 
     `Nicknames` = :nicknames 
WHERE `ID` = :cid 
1

你的更新語句是錯誤的。它應該是:

update directory set firstname=:firstname, surname=:surname, ...;