@CertaiN đề cập, với thực chuẩn bị, không phải giả lập, bạn không thể liên kết cùng một biến nhiều lần bằng cùng một tên. Bạn có thể chọn liên kết nó với một tên khác, nhưng truy vấn này không cần nó. VALUES()
hàm trả về giá trị đã được chèn vào
, điều này sẽ tạo ra truy vấn này:
$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)';
Và có thể được sử dụng cho nhiều cột hơn nếu cần, như vậy:
$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)';