Een @CertaiN vermeldt, met echte voorbereidt, niet-geëmuleerde, u kunt dezelfde variabele niet meerdere keren met dezelfde naam binden. Je zou kunnen kiezen om het te binden met een andere naam, maar deze zoekopdracht heeft het niet nodig. De VALUES()
functie geeft de waarde terug die zou zijn ingevoegd
, wat deze vraag zou opleveren:
$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)';
En kan indien nodig voor meer kolommen worden gebruikt, zoals:
$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)';