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

CodeIgniter- вмъкване на активен запис, ако е нов или актуализиране при дубликат

По принцип това, което търсите, може да е този INSERT ... ON DUPLICATE KEY UPDATE - при условие, че използвате MySQL и вашият идентификатор е уникален ключ в таблицата.

Ще трябва ръчно да създадете заявката и да преминете към $this->db->query() функция вместо всеки вграден активен запис като помощни функции на DB драйвера.

Пример:

$sql = 'INSERT INTO menu_sub (id, name, desc, misc)
        VALUES (?, ?, ?, ?)
        ON DUPLICATE KEY UPDATE 
            name=VALUES(name), 
            desc=VALUES(desc), 
            misc=VALUES(misc)';

$query = $this->db->query($sql, array( $id, 
                                       $this->validation->name, 
                                       $this->validation->desc, 
                                       $this->validation->misc
                                      ));


  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 на Docker - Как да контейнеризирате вашата база данни:Нова бяла книга

  2. MySQL:#126 - Неправилен ключов файл за таблица

  3. Как принуждавате mysql LIKE да бъде чувствителен към главни букви?

  4. SQLSTATE[42000]:Синтактична грешка или нарушение на достъпа:1055 Израз №3 от списъка SELECT не е в клауза GROUP BY и съдържа неагрегирани

  5. Актуализация от MYSQL до MYSQLI