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

PHP базовый учебник

PHP продвинутый учебник

PHP & MySQL

PHP справочник

DELETE в PHP MySQL

в этом руководстве вы узнаете, как использовать PHP для удаления записей из таблицы MySQL.

удаление данных из базы данных таблицы

Как и при вставке записей в таблицу, вы можете использовать SQL DELETEпродолжение удаляет записи из таблицы. Обычно оно используется вместе с подзапросом WHERE, чтобы удалять только те записи, которые соответствуют определенным условиям или условиям.

базовая грамматика предложения DELETE может быть дана следующим образом:

DELETE FROM table_name WHERE column_name=some_value

давайте выполним SQL-запрос с помощью предложения DELETE и подзапроса WHERE, а затем передадим его функции PHP mysqli_query() для выполнения этого запроса, чтобы удалить записи из таблицы. Посмотрите на таблицу persons в базе данных 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] |
+----+------------+-----------+----------------------+

в следующем примере PHP-кода из таблицы persons будет удаленаfirst_nameзаписи, соответствующие имени John

пример:面向过程的方式

<?php
/*Попытка подключения к серверу MySQL. Предполагается, что вы запускаете MySQL.
сервер сdefault настройками (пользователь без пароля "root") */
$link = mysqli_connect("localhost", "root", "", "demo");
 
//проверка подключения
if($link === false){
    die("ошибка: не удалось подключиться. " . mysqli_connect_error());
}
 
//尝试执行删除
$sql = "DELETE FROM persons WHERE first_name='John'";
if(mysqli_query($link, $sql)){
    echo "Запись успешно удалена.";
} else{
    echo "ошибка: не удалось выполнить $sql. " . mysqli_error($link);
}
 
//Закрываем соединение
mysqli_close($link);
?>

пример:面向对象的方式

<?php
/*Попытка подключения к серверу MySQL. Предполагается, что вы запускаете MySQL.
сервер сdefault настройками (пользователь без пароля "root") */
$mysqli = new mysqli("localhost", "root", "", "demo");
 
//проверка подключения
if($mysqli === false){
    die("ошибка: не удалось подключиться. " . $mysqli->connect_error);
}
 
//尝试执行删除
$sql = "DELETE FROM persons WHERE first_name='John'";
if($mysqli->query($sql) === true){
    echo "Запись успешно удалена.";
} else{
    echo "Ошибка: Не удалось выполнить $sql. ". $mysqli->error;
}
 
//Закрываем соединение
$mysqli->close();
?>

Пример: способ PDO

<?php
/*Попытка подключения к серверу MySQL. Предполагается, что вы запускаете MySQL.
Сервер с-default настройками (пользователь без пароля "root")*/
try{
    $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "");
    //Устанавливаем режим ошибок PDO в исключения
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
    die("Ошибка: Не удалось подключиться. ". $e->getMessage());
}
 
//Попытка обновить выполнение запроса
try{
    $sql = "DELETE FROM persons WHERE first_name='John'";  
    $pdo->exec($sql);
    echo "Запись успешно удалена.";
} catch(PDOException $e){
    die("Ошибка: Не удалось выполнить $sql. ". $e->getMessage());
}
 
//Закрываем соединение
unset($pdo);
?>

После удаления:personsТаблица будет выглядеть следующим образом:

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

Как вы видите, запись успешно удалена из таблицы persons.

Предупреждение:WHERE-подзапрос в предложении DELETE указывает, какие записи должны быть удалены. Если пропущен подзапрос WHERE, будут удалены все записи.