Cuando trabajas con bases de datos, es común necesitar eliminar registros. PHP proporciona varias formas de interactuar con bases de datos MySQL, usando tanto MySQLi como PDO. En este artículo, aprenderás cómo eliminar registros de una tabla MySQL utilizando diferentes métodos.
La Sentencia SQL DELETE
La sentencia DELETE se utiliza para eliminar uno o más registros de una tabla. Es importante usar la cláusula WHERE para especificar qué registros deseas eliminar, ya que omitirla eliminaría todos los registros de la tabla.
Sintaxis Básica
DELETE FROM nombre_tabla WHERE columna = valor;
Si no especificas una condición WHERE, ¡se eliminarán todos los registros!
Ejemplo de Tabla: empleados
Supongamos que tienes una tabla llamada empleados con los siguientes datos:
Tabla Empleados
id
nombre
apellido
email
fecha_registro
1
Carlos
Perez
carlos@ejemplo.com
2023-05-01 14:26:15
2
Ana
García
ana@ejemplo.com
2023-06-12 10:22:30
3
Luis
Fernández
luis@ejemplo.com
2023-07-23 10:48:23
Objetivo
Queremos eliminar el registro con id=3 de la tabla empleados.
Usando MySQLi Orientado a Objetos
En este ejemplo, usaremos el enfoque orientado a objetos de MySQLi para eliminar un registro.
// Crear conexión
$conexion = new mysqli($servidor, $usuario, $contraseña, $base_datos);
// Verificar la conexión
if ($conexion->connect_error) {
die("Conexión fallida: " . $conexion->connect_error);
}
// SQL para eliminar un registro
$sql = "DELETE FROM empleados WHERE id=3";
if ($conexion->query($sql) === TRUE) {
echo "Registro eliminado exitosamente";
} else {
echo "Error al eliminar el registro: " . $conexion->error;
}
// Cerrar la conexión
$conexion->close();
?>
Explicación del Código
$conexion->query(): Ejecuta la consulta SQL para eliminar el registro con id=3. $conexion->error: Muestra el error si ocurre alguno durante la ejecución.
¿Por qué Evitar mysql_query()?
La función mysql_query() fue declarada obsoleta en PHP 5.5.0 y eliminada en PHP 7.0.0. Actualmente, se recomienda utilizar MySQLi o PDO, ya que ofrecen mejoras en seguridad y rendimiento, además de soportar consultas preparadas.
Usando MySQLi Procedural
Si prefieres el enfoque procedural, puedes eliminar registros usando funciones como mysqli_connect() y mysqli_query().
// SQL para eliminar un registro
$sql = "DELETE FROM empleados WHERE id=3";
if (mysqli_query($conexion, $sql)) {
echo "Registro eliminado exitosamente";
} else {
echo "Error al eliminar el registro: " . mysqli_error($conexion);
}
// Cerrar la conexión
mysqli_close($conexion);
?>
Explicación del Código
Similar al enfoque orientado a objetos, pero utilizando funciones procedurales. En este caso, mysqli_query() se usa para ejecutar la consulta SQL y mysqli_error() para manejar errores.
Usando PDO (PHP Data Objects)
El enfoque PDO es una alternativa más robusta y flexible para interactuar con bases de datos. A continuación, mostramos cómo eliminar un registro utilizando PDO y manejar errores con excepciones.
try {
$conexion = new PDO("mysql:host=$servidor;dbname=$base_datos", $usuario, $contraseña);
// Configurar el modo de error de PDO para que lance excepciones
$conexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// SQL para eliminar un registro
$sql = "DELETE FROM empleados WHERE id=3";
// Usar exec() ya que no se espera un resultado
$conexion->exec($sql);
echo "Registro eliminado exitosamente";
} catch (PDOException $e) {
echo "Error: " . $sql . "<br>" . $e->getMessage();
}
// Cerrar la conexión
$conexion = null;
?>
Explicación del Código
PDO::exec(): Ejecuta la consulta SQL de eliminación. try-catch: El bloque try-catch se utiliza para capturar y manejar cualquier excepción que ocurra durante la operación.
Consideraciones Importantes
Cláusula WHERE: Asegúrate de usar la cláusula WHERE en tu consulta DELETE para evitar eliminar todos los registros de la tabla. Transacciones: Si estás eliminando varios registros, considera usar transacciones con PDO para asegurar que los cambios se realicen de manera segura. Validaciones: Antes de eliminar un registro, es buena práctica validar la entrada y asegurarte de que el registro que estás eliminando existe en la base de datos.
Conclusión
Eliminar registros de una base de datos MySQL desde PHP es un proceso sencillo, pero debes hacerlo con cuidado. PHP ofrece varias maneras de realizar esta tarea utilizando MySQLi (orientado a objetos y procedural) o PDO.
Cada método tiene sus ventajas, y la elección depende de las necesidades de tu aplicación. Asegúrate de manejar los errores adecuadamente y de usar la cláusula WHERE para evitar la eliminación accidental de todos los datos. Regreso al contenido
SuperHispanoInstale esta aplicación en su pantalla de inicio para una mejor experiencia