En @CertaN nævner, med rigtig forbereder, ikke-emulerede, kan du ikke binde den samme variabel flere gange med det samme navn. Du kan vælge at binde det med et andet navn, men denne forespørgsel behøver det ikke. VALUES()
funktion returnerer den værdi, der ville være blevet indsat
, hvilket ville gøre denne forespørgsel:
$sql = 'INSERT INTO users_meta
(user_id,meta_key,meta_value)
VALUES (:user_id,:meta_key,:meta_value)
ON DUPLICATE KEY
UPDATE meta_value = VALUES(meta_value)';
Og kan bruges til flere kolonner, hvis det er nødvendigt, som sådan:
$sql = 'INSERT INTO users_meta
(user_id,meta_key,meta_value)
VALUES (:user_id,:meta_key,:meta_value)
ON DUPLICATE KEY
UPDATE
meta_value = VALUES(meta_value),
meta_key = VALUES(meta_key)';