Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Nieprawidłowy numer parametru, PDO przy zduplikowanej aktualizacji kończy się niepowodzeniem

@CertaiN wspomina, z prawdziwym przygotowuje, nie emulowane, nie można wielokrotnie powiązać tej samej zmiennej pod tą samą nazwą. Możesz zdecydować się na powiązanie go z inną nazwą, ale to zapytanie tego nie potrzebuje. VALUES() funkcja zwraca wartość, która zostałaby wstawiona , co spowodowałoby to zapytanie:

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

W razie potrzeby można go użyć do większej liczby kolumn, na przykład:

    $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. Zapytanie MySQL Powolne podczas korzystania z funkcji Order By z funkcją obliczania odległości między dwoma punktami (długi, szeroki)

  2. Wybierz wiersze jako kolumny dla meta postu wordpress

  3. Konfigurowanie Grails 3.1.0 z MySQL

  4. Wyzwalacze MySQL i SUM()

  5. ColdFusion:wiele instrukcji SQL w zapytaniu?