sql >> Database teknologi >  >> RDS >> Mysql

Ugyldigt parameternummer, PDO ved dubletopdatering mislykkes

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


  1. ODBC-opkald mislykkedes med lagret procedure - Send forespørgsel igennem

  2. ugyldigt navnemønster, når du forsøger at videregive en tilpasset objekttilknytning af orakeltypen

  3. Sammenligning af Windows Azure VM-ydeevne, del 2

  4. Fejl (1093):Du kan ikke opdatere måltabellen til opdatering i FROM-klausulen