Vaya al Contenido

PHP Eliminar Datos - SuperHispano

Saltar menú
SuperHispano
+34 012 345 678
info@example.com
España 03:19:18 sábado 07/02/26
Saltar menú
Saltar menú
Saltar menú
Taller > PHP > Base de Datos MySQL

Eliminar Datos de una Tabla MySQL con PHP


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.

Ejemplo


<?php
$servidor = "localhost";
$usuario = "root";
$contraseña = "";
$base_datos = "empresa";

// 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().

Ejemplo


<?php
$servidor = "localhost";
$usuario = "root";
$contraseña = "";
$base_datos = "empresa";

// Crear conexión
$conexion = mysqli_connect($servidor, $usuario, $contraseña, $base_datos);

// Verificar conexión
if (!$conexion) {
die("Conexión fallida: " . mysqli_connect_error());
}

// 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.

Ejemplo


<?php
$servidor = "localhost";
$usuario = "root";
$contraseña = "";
$base_datos = "empresa";

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.
+34 012 345 678
+34 012 345 678 (fax)
example@superhispano.com
Creado con WebSite X5
Regreso al contenido
Icono de la aplicación
SuperHispano Instale esta aplicación en su pantalla de inicio para una mejor experiencia
Toque Botón de instalación en iOS y luego "Agregar a su pantalla"