En caso de que se esté usando el framework CodeIgniter y para gestionar la base de datos se utilice Active Record, puede ser que eches de menos la opción de insertar con la opción IGNORE específica de MySQL.

CodeIgniter y Active Record, en su propósito de abstraerse del sistema gestor de base de datos no soporta esta pecularidad única de MySQL, sin embargo con un pequeño truco es posible realizarlo.

Para ello debemos obtener la cadena resultante del query del insert y reemplazar el INSERT INTO por un INSERT REPLACE INTO, de la siguiente manera:


$cadena_query = $this->db->insert_string('mi_tabla', $campos_tabla);
$cadena_query = str_replace('INSERT INTO', 'INSERT IGNORE INTO', $cadena_query);
$this->db->query($cadena_query);