Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Số tham số không hợp lệ, PDO trên bản cập nhật trùng lặp không thành công

@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)';


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao các câu lệnh NOT EXISTS lồng nhau không thể tránh khỏi trong SQL

  2. MySQL - Toán tử GIỮA với FLOAT (10,6) hoạt động giống như> và <, thay vì> =và <=

  3. MySQL trigger để đặt cột thành max + 1 không hoạt động

  4. Khi nào thì thêm chỉ mục trên trường bảng SQL (MySQL)?

  5. Cơ sở dữ liệu pincode của Ấn Độ với tập lệnh công cụ tìm vị trí trong php và jquery