- PHP5 MySQL Удалить данные
- MySQL Удалить данные из таблицы, используя mysqli и PDO
- Пример MySQLi — объектно-ориентированный
- Пример MySQLi — процессуальный
- Пример PDO
- Php mysql удаление данных
- Объектно-ориентированный стиль
- Список пользователей
- Процедурный стиль
- Список пользователей
- Редактирование данных в MySql с помощью PHP (админ-панель)
- Создание таблицы
- Вывод записей
- Редактирование и удаление записей
- Редактирование записей
- Сокращенная запись echo с условием
- Полный листинг кода
- Удаление записей в MySQL (DELETE)
- Удаление данных таблицы БД MySQL
- Пример
PHP5 MySQL Удалить данные
MySQL Удалить данные из таблицы, используя mysqli и PDO
Заявление DELETE используется для удаления записей из таблицы:
Обратите внимание на предложение WHERE в синтаксисе удаления: Предложение WHERE указывает, какие записи или запись должна быть удалены. Если исключить условие WHERE, то все записи будут удалены!
Чтобы узнать больше о SQL, пожалуйста, посетите наш Учебник SQL.
Давайте посмотрим на таблицу «MyGuests» :
id | firstname | lastname | reg_date | |
---|---|---|---|---|
1 | Федор | Петров | fed@example.ru | 2017-10-22 14:26:15 |
2 | Петр | Громыхалов | petr@example.ru | 2017-10-23 10:22:30 |
3 | Лева | Быков | leva@example.ru | 2017-10-26 10:48:23 |
В следующих примерах, нужно удалить запись с id=3 в таблице «MyGuests» :
Пример MySQLi — объектно-ориентированный
// Подключение к MySQL
$servername = «localhost»; // локалхост
$username = «root»; // имя пользователя
$password = «»; // пароль если существует
$dbname = «myDB»; // база данных
?php
// Создание соединения
$conn = new mysqli($servername, $username, $password, $dbname);
// Проверка соединения
if ($conn->connect_error) die(«Ошибка подключения: » . $conn->connect_error);
>
// Удаления записи
$sql = «DELETE FROM MyGuests WHERE ($conn->query($sql) === TRUE) echo «Запись успешно удалена»;
> else echo «Ошибка удаления записи: » . $conn->error;
>
// Закрыть подключение
$conn->close();
?>
Пример MySQLi — процессуальный
// Подключение к MySQL
$servername = «localhost»; // локалхост
$username = «root»; // имя пользователя
$password = «»; // пароль если существует
$dbname = «myDB»; // база данных
?php
// Создание соединения
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Проверка соединения
if (!$conn) die(«Ошибка подключения: » . mysqli_connect_error());
>
// Удаления записи
$sql = «DELETE FROM MyGuests WHERE (mysqli_query($conn, $sql)) echo «Запись успешно удалена»;
> else echo «Ошибка удаления записи: » . mysqli_error($conn);
>
// Закрыть подключение
mysqli_close($conn);
?>
Пример PDO
// Подключение к MySQL
$servername = «localhost»; // локалхост
$username = «root»; // имя пользователя
$password = «»; // пароль если существует
$dbname = «myDBPDO»; // база данных
?php
// Создание соединения и исключения
try $conn = new PDO(«mysql:host=$servername;dbname=$dbname», $username, $password);
// Установить режим ошибки PDO в исключение
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Удаления записи
$sql = «DELETE FROM MyGuests WHERE // Используйте exec (), поскольку результаты не возвращаются
$conn->exec($sql);
echo «Запись успешно удалена»;
>
catch(PDOException $e)
echo $sql . «
» . $e->getMessage();
>
// Закрыть подключение
$conn = null;
?>
После удаления записи таблица будет выглядеть следующим образом:
id | firstname | lastname | reg_date | |
---|---|---|---|---|
1 | Федор | Петров | fed@example.ru | 2017-10-22 14:26:15 |
2 | Петр | Громыхалов | petr@example.ru | 2017-10-23 10:22:30 |
Php mysql удаление данных
Для удаления данных применяется sql-команда DELETE :
DELETE FROM Таблица WHERE столбец = значение
Для удаления данных возьмем использованную в прошлых темах таблицу Users со следующим определением:
CREATE TABLE Users (id INTEGER AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30), age INTEGER)
Объектно-ориентированный стиль
Вначале определим для вывода всех объектов из БД скрипт index.php :
Список пользователей
connect_error)< die("Ошибка: " . $conn->connect_error); > $sql = "SELECT * FROM Users"; if($result = $conn->query($sql))< echo "
Имя | Возраст | |
---|---|---|
" . $row["name"] . " | "; echo "" . $row["age"] . " | "; echo ""; echo " |
В таблицы для каждой строки определена форма, которая посылает данные в POST-запросе скрипту delete.php . Чтобы передать в delete.php идентификатор удаляемого объекта, на форме определено скрытое поле для хранения id объекта.
Обратите внимание, что в данном случае применяется не ссылка для удаления типа
которая оправляет данные в GET-запросе, а именно форма, которая отправляет данные в POST-запросе. Почему? Подобные GET-запросы потенциально небезопасны. Допустим, нам пришло электронное письмо, в которое была внедрена картинка посредством тега:
В итоге при открытии письма 1-я запись в таблице может быть удалена. Уязвимость касается не только писем, но может проявляться и в других местах, но смысл один — GET-запрос к скрипту, который удаляет данные, несет потенциальную уязвимость.
Теперь определим сам скрипт delete.php , который будет выполнять удаление:
connect_error)< die("Ошибка: " . $conn->connect_error); > $userid = $conn->real_escape_string($_POST["id"]); $sql = "DELETE FROM Users WHERE "; if($conn->query($sql)) < header("Location: index.php"); >else< echo "Ошибка: " . $conn->error; > $conn->close(); > ?>
В данном случае скрипт получает через POST-запрос значение id и по этому идентификатору выполняет удаление. После чего происходит переадресация на скрипт index.php .
Процедурный стиль
Список пользователей
$sql = "SELECT * FROM Users"; if($result = mysqli_query($conn, $sql))< echo "
Имя | Возраст | |
---|---|---|
" . $row["name"] . " | "; echo "" . $row["age"] . " | "; echo ""; echo " |
$userid = mysqli_real_escape_string($conn, $_POST["id"]); $sql = "DELETE FROM Users WHERE "; if(mysqli_query($conn, $sql)) < header("Location: index.php"); >else < echo "Ошибка: " . mysqli_error($conn); >mysqli_close($conn); > ?>
Редактирование данных в MySql с помощью PHP (админ-панель)
Если ты полностью справился с предыдущим уроком, то данный урок можно пропустить 🙂 Здесь мы с вами пошагово сделаем следующее:
- Создадим таблицу MySql
- Выведем из таблицы MySql данные
- Сделаем форму для редактирования и удаления данных из таблицы MySql
Создание таблицы
Давайте создадим в нашей БД таблицу products со следующими полями: ID, Name, Price. Поле Name у нас будет иметь тип TEXT, остальные два — INT. Если вам лень в PhpMyAdmin создавать такую табличку руками, то можете просто в нем выполнить вот этот SQL-код:
CREATE TABLE IF NOT EXISTS `products` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `Name` text NOT NULL, `Price` int(11) NOT NULL, PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Теперь давайте заполним нашу таблицу тестовыми данными. Для наглядности мы добавим 3 записи:
Заполнить таблицу можно либо ручками через PhpMyAdmin, либо опять же вот таким простым SQL-запросом:
INSERT INTO `products` (`ID`, `Name`, `Price`) VALUES (1, 'Хлеб', 35), (2, 'Йогурт', 27), (3, 'Пиво Балтика #7', 50);
Вывод записей
Следующим нашим шагом будет обычный вывод этих данных из MySql на web-страничку.
Создадим новую страницу, к примеру «product_list.php» с установленным соединением с БД:
Теперь выведем все записи из таблицы. Для этого после подключения к БД (перед закрывающимся тегом