En un trabajo que estoy realizando intenté hacer un delete de este tipo en CodeIgniter:
$this->db->delete("la_tabla");
Cosa que permitiría eliminar todos los elementos de una tabla, pero no fue así y en su lugar salió el mensaje:
Deletes are not allowed unless they contain a “where” or “like” clause.
Que quiere decir que las eliminaciones no están permitidas si no les pones un where o un like. Pero si ejecutamos:
delete from mi_tabla;
En una consola de MySQL, todo va bien. Bueno, no importa, el problema fue con CodeIgniter y la solución es realmente sencilla.
Vaciar o eliminar todos los datos de una tabla con CodeIgniter
El query builder de CodeIgniter tiene unas opciones para limpiar una tabla. Hay dos métodos que nos ofrece:
empty_table("tabla")
Y también:
truncate_table("tabla")
La primera opción es el equivalente a hacer un delete from mi_tabla;
y la segunda es equivalente a hacer un truncate table mi_tabla;
Formas de uso
Primero, carga la base de datos y la tendrás en $this->db
. Luego puedes llamarla así:
<?php
# Equivalente a delete from mi_tabla
$this->db->empty_table("mi_tabla");
# Equivalente a truncate table mi_tabla
$this->db->truncate_table("mi_tabla");
?>
Por cierto, si tu base de datos no soporta la operación truncate, se ejecutará un delete from tabla
Aquí las referencias.