MySQL PDO 语法错误或访问冲突:1064

MySQL PDO Syntax error or access violation: 1064

以下代码返回错误:

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, last_name, username) VALUES ('Joseph', 'NotRandom', 'nolonger' at line 1

try {
   $sql = "UPDATE `ekar_users` SET (`first_name`, `last_name`, `username`) VALUES (:first_name, :last_name, :username) WHERE id= $user_id";
   $query = $conn->prepare($sql);
   $query->execute( array ( ":first_name" => $_POST['fname'], ":last_name" => $_POST['lname'], ":username" => $_POST['username'] ) );
}
catch(PDOException $e) {
   // handle error 
   echo $e->getmessage();
   exit();
}

非常感谢任何帮助。

您的 UPDATE 语法错误。此外,您没有参数化 $user_id 所以我为您添加了

UPDATE `ekar_users` SET 
    `first_name` = :first_name, 
    `last_name` = :last_name, 
    `username`= :username
WHERE id= :user_id