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

CodeIgniter- aktywny wpis rekordu, jeśli nowy lub aktualizacja na duplikacie

Zasadniczo to, czego szukasz, może być tym INSERT ... ON DUPLICATE KEY UPDATE - pod warunkiem, że używasz MySQL, a Twoje id jest unikalnym kluczem w tabeli.

Musisz ręcznie skonstruować zapytanie i przekazać do $this->db->query() zamiast jakichkolwiek wbudowanych aktywnych rekordów, takich jak funkcje pomocnicze sterownika DB.

Przykład:

$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. iOS — najlepsze praktyki synchronizacji baz danych i baz danych serwera

  2. Sprawdź, czy tabela MySQL istnieje bez użycia składni select from?

  3. Kodowanie JSP podczas wstawiania tekstu w języku innym niż angielski do bazy danych MySQL

  4. emulacja funkcji substring_index() MySQL w PGSQL

  5. laravel 4 - jak ograniczyć (przejmowanie i pomijanie) dla elokwentnego ORM?