Mysql
 sql >> Base de données >  >> RDS >> Mysql

CodeIgniter - insertion d'enregistrement actif si nouveau ou mise à jour en double

Fondamentalement, ce que vous recherchez pourrait être ceci INSERT ... ON DUPLICATE KEY UPDATE - à condition que vous utilisiez MySQL et que votre identifiant soit une clé unique sur la table.

Vous devrez construire manuellement la requête et passer au $this->db->query() fonction au lieu de tout enregistrement actif intégré comme les fonctions d'assistance du pilote de base de données.

Exemple :

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