Mysql
 sql >> база данни >  >> RDS >> Mysql

Невалиден номер на параметъра, PDO при дублирана актуализация е неуспешна

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Проверете припокриването на периодите от време в MySQL

  2. конвертирайте php дата във формат mysql

  3. javax.naming.NoInitialContextException с mysql DataSource

  4. playframework 2.0 - надвишени max_user_connections при еволюцията на базата данни?

  5. Защо не мога да използвам променлива като име на таблица в съхранена процедура?