English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico de PHP

Tutorial avanzado de PHP

PHP & MySQL

Manual de referencia PHP

DELETE en PHP

En este tutorial, aprenderá cómo usar PHP para eliminar registros de una tabla MySQL.

Eliminar datos de la tabla de base de datos

Al igual que al insertar registros en la tabla, puede usar SQL DELETELa sentencia DELETE elimina registros de la tabla. Se utiliza generalmente con la cláusula WHERE para eliminar solo aquellos registros que cumplen con ciertas condiciones o condiciones.

La sintaxis básica de la sentencia DELETE se puede dar de la siguiente manera:

DELETE FROM table_name WHERE column_name=some_value

Vamos a usar una consulta SQL con una cláusula WHERE y una sentencia DELETE, luego ejecutar esta consulta pasándola a la función mysqli_query() de PHP para eliminar registros de la tabla. Vea la tabla persons en la base de datos demo:

+----+------------+-----------+----------------------+
| id | first_name | last_name | email                |
+----+------------+-----------+----------------------+
|  1 | Peter      | Parker    | [email protected] |
|  2 | John | Rambo | [email protected] |
|  3 | Clark      | Kent      | [email protected]   |
|  4 | John | Carter | [email protected] |
|  5 | Harry      | Potter    | [email protected] |
+----+------------+-----------+----------------------+

El siguiente ejemplo de código PHP eliminará registros de la tabla personsfirst_nameRegistros de personas que tienen el nombre John

Ejemplo: enfoque orientado a procedimientos

<?php
/* Intentar conectar al servidor MySQL. Supongamos que está ejecutando MySQL.
Servidor con configuración predeterminada (usuario sin contraseña "root") */
$link = mysqli_connect("localhost", "root", "", "demo");
 
//comprobar conexión
if($link === false){
    die("Error: No se puede conectar. " . mysqli_connect_error());
}
 
//intentar ejecutar la eliminación
$sql = "DELETE FROM persons WHERE first_name='John'";
if(mysqli_query($link, $sql)){
    echo "El registro se eliminó correctamente.";
} else{
    echo "Error: No se puede ejecutar $sql. " . mysqli_error($link);
}
 
//Cerrar conexión
mysqli_close($link);
?>

Ejemplo: enfoque orientado a objetos

<?php
/* Intentar conectar al servidor MySQL. Supongamos que está ejecutando MySQL.
Servidor con configuración predeterminada (usuario sin contraseña "root") */
$mysqli = new mysqli("localhost", "root", "", "demo");
 
//comprobar conexión
if($mysqli === false){
    die("Error: No se puede conectar. ". $mysqli->connect_error);
}
 
//intentar ejecutar la eliminación
$sql = "DELETE FROM persons WHERE first_name='John'";
if($mysqli->query($sql) === true){
    echo "El registro se eliminó correctamente.";
} else{
    echo "Error: No se puede ejecutar $sql. ". $mysqli->error;
}
 
//Cerrar conexión
$mysqli->close();
?>

Ejemplo: método PDO

<?php
/* Intentar conectar al servidor MySQL. Supongamos que está ejecutando MySQL.
Servidor con configuración predeterminada (usuario sin contraseña "root")*/
try{
    $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "");
    //Establecer el modo de error de PDO en excepciones
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
    die("Error: No se puede conectar. ". $e->getMessage());
}
 
//intentar actualizar la ejecución de la consulta
try{
    $sql = "DELETE FROM persons WHERE first_name='John'";  
    $pdo->exec($sql);
    echo "El registro se eliminó correctamente.";
} catch(PDOException $e){
    die("Error: No se puede ejecutar $sql. ". $e->getMessage());
}
 
//Cerrar conexión
unset($pdo);
?>

Después de eliminarpersonsLa tabla se mostrará así:

+----+------------+-----------+----------------------+
| id | first_name | last_name | email                |
+----+------------+-----------+----------------------+
|  1 | Peter      | Parker    | [email protected] |
|  3 | Clark      | Kent      | [email protected]   |
|  5 | Harry      | Potter    | [email protected] |
+----+------------+-----------+----------------------+

Como puede ver, el registro se eliminó correctamente de la tabla persons.

Advertencia:La cláusula WHERE de la sentencia DELETE especifica qué registros deben eliminarse. Si se omite la cláusula WHERE, se eliminarán todos los registros.