@CertainN споменава с истински подготвя, не емулирани, не можете да свързвате една и съща променлива няколко пъти с едно и също име. Можете да изберете да го обвържете с друго име, но тази заявка не се нуждае от него. VALUES()
функцията връща стойността, която би била вмъкната
, което би направило тази заявка:
$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)';
И може да се използва за повече колони, ако е необходимо, като така:
$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)';