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