Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

CodeIgniter - inserção de registro ativo se novo ou atualização em duplicata


Basicamente, o que você está procurando pode ser isso INSERT ... ON DUPLICATE KEY UPDATE - desde que você esteja usando MySQL e seu id seja uma chave única na tabela.

Você teria que construir manualmente a consulta e passar para o $this->db->query() função em vez de qualquer registro ativo integrado como funções auxiliares do driver de banco de dados.

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