Mysql
 sql >> Datenbank >  >> RDS >> Mysql

CodeIgniter – aktiver Datensatz einfügen, wenn neu oder bei Duplikat aktualisieren

Im Grunde könnte das, wonach Sie suchen, dieser INSERT ... ON DUPLICATE KEY UPDATE - vorausgesetzt, Sie verwenden MySQL und Ihre ID ist ein eindeutiger Schlüssel in der Tabelle.

Sie müssten die Abfrage manuell erstellen und an $this->db->query() übergeben Funktion anstelle eines eingebauten aktiven Datensatzes wie Hilfsfunktionen des DB-Treibers.

Beispiel:

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