sql >> Databáze >  >> RDS >> Mysql

CodeIgniter - vložení aktivního záznamu, pokud je nový, nebo aktualizace při duplikaci

V podstatě to, co hledáte, může být toto INSERT ... ON DUPLICATE KEY UPDATE - za předpokladu, že používáte MySQL a vaše id je jedinečný klíč v tabulce.

Dotaz byste museli vytvořit ručně a předat jej $this->db->query() namísto jakéhokoli vestavěného aktivního záznamu, jako jsou pomocné funkce ovladače DB.

Příklad:

$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. ClassNotFoundException:com.mysql.jdbc.GoogleDriver

  2. Vložení MySQL z textové oblasti do více řádků

  3. cd:-M:neplatná volba

  4. čárkami oddělený argument pro operátor IN, MySQL