sql >> Databasteknik >  >> RDS >> Mysql

CodeIgniter- aktiv post infoga om ny eller uppdatera på duplikat

Det du letar efter kan i princip vara denna INSERT ... ON DUPLICATE KEY UPDATE - förutsatt att du använder MySQL och ditt id är en unik nyckel på bordet.

Du måste konstruera frågan manuellt och skicka till $this->db->query() funktion istället för någon inbyggd aktiv post som hjälpfunktioner i DB-drivrutinen.

Exempel:

$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. SQL-fel 1630:Funktionen SUBSTRING finns inte... va?

  2. MySQL regexp mycket långsam än liknande

  3. Dialekt måste anges uttryckligen från v4.0.0

  4. Hur man konverterar sträng till tidsstämpel utan tidszon