sql >> Database >  >> RDS >> Mysql

CodeIgniter- actief record invoegen indien nieuw of update op duplicaat

Wat u zoekt, is misschien deze INSERT ... ON DUPLICATE KEY UPDATE - op voorwaarde dat u MySQL gebruikt en uw id een unieke sleutel op de tafel is.

U moet de query handmatig samenstellen en doorgeven aan de $this->db->query() functie in plaats van een ingebouwde actieve record zoals helperfuncties van de DB Driver.

Voorbeeld:

$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. 3 manieren om de dagnaam van een datum te krijgen in SQL Server (T-SQL)

  2. MySQL INSERT-gegevens worden niet opgeslagen in de juiste db, alleen tijdelijk?

  3. CURDATE() Voorbeelden – MySQL

  4. SQL:selecteer dynamische kolomnaam op basis van variabele