重複キーの更新でMySQLクエリを実行しようとしていますが、「構文エラーまたはアクセス違反」エラーが発生するため、構文に何が間違っているかわかりません。PHP PDO MYSQL重複アップデート
コード:
$sql = "INSERT INTO site_configuration
(configuration_key, configuration_value, additional_data)
VALUES
(:config_key, :site_new_background, :site_background_meta)
ON DUPLICATE KEY UPDATE
'configuration_value' = VALUES(:site_new_background), 'additional_data' = VALUES(:site_background_meta)";
$smth = $database->prepare($sql);
$smth->bindParam(':config_key', $config_key, PDO::PARAM_STR);
$smth->bindParam(':site_new_background', $site_new_background, PDO::PARAM_STR);
$smth->bindParam(':site_background_meta', $site_background_meta, PDO::PARAM_STR);
エラーメッセージ:
メッセージと'PDOException'「SQLSTATE [42000]:構文エラーまたはアクセス違反:1064あなたは、あなたのSQL構文でエラーが発生しています。近く「」configuration_value「= VALUESを使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してください(?)、 『additional_data』 = VALUES(?)」
一重引用符を削除するarroundカラム名 – Jens
プレースホルダを再利用することはできません。 –