Мы продолжаем наш курс по изучению PHP для начинающих. В предыдущих уроках мы разобрались, как создавать базы данных, добавлять и извлекать информацию. Сегодня мы переходим к важной теме, обновлению и удалению данных. Это ключевые операции в работе с базами данных, но они требуют аккуратности. Одно неверное действие может привести к потере информации.
Операция UPDATE позволяет изменять существующие данные в
таблице. Она незаменима, когда нужно исправить ошибку, обновить статус
пользователя или изменить любую другую информацию.
Базовый синтаксис выглядит так:
UPDATE таблица SET столбец1 = значение1, столбец2 = значение2, ... WHERE условие;
таблица имя таблицы, которую нужно обновить.SET указывает столбцы и новые значения.WHERE определяет, какие строки обновлять. Если пропустить WHERE, обновятся все строки в таблице!Допустим, у нас есть таблица users и мы хотим изменить email пользователя с id = 5:
UPDATE users SET email = 'new_email@example.com' WHERE id = 5;
Изменим имя и статус пользователя:
UPDATE users SET name = 'Алексей', status = 'active' WHERE id = 5;
На практике мы будем выполнять запросы через PHP. Вот пример с использованием PDO:
<?php
try {
$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$stmt = $pdo->prepare("UPDATE users SET email = :email WHERE id = :id");
$stmt->execute([
'email' => 'new_email@example.com',
'id' => 5
]);
echo "Данные обновлены!";
} catch (PDOException $e) {
echo "Ошибка: " . $e->getMessage();
}
?>
А вот пример с mysqli:
<?php
$mysqli = new mysqli("localhost", "username", "password", "test");
if ($mysqli->connect_error) {
die("Ошибка подключения: " . $mysqli->connect_error);
}
$stmt = $mysqli->prepare("UPDATE users SET email = ? WHERE id = ?");
$stmt->bind_param("si", $email, $id);
$email = "new_email@example.com";
$id = 5;
$stmt->execute();
echo "Данные обновлены!";
$stmt->close();
$mysqli->close();
?>
Важно!
WHERE, убедитесь что оно точно указывает на нужные строки.Операция DELETE удаляет строки из таблицы. Это необратимая операция, поэтому будьте предельно внимательны!
Базовый синтаксис:
DELETE FROM таблица WHERE условие;
WHERE, удалятся все данные из таблицы!Удалим пользователя с id = 10:
DELETE FROM users WHERE id = 10;
Удалим всех неактивных пользователей:
DELETE FROM users WHERE status = 'inactive';
Пример с PDO:
<?php
try {
$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$stmt = $pdo->prepare("DELETE FROM users WHERE id = :id");
$stmt->execute(['id' => 10]);
echo "Запись удалена!";
} catch (PDOException $e) {
echo "Ошибка: " . $e->getMessage();
}
?>
Пример с mysqli:
<?php
$mysqli = new mysqli("localhost", "username", "password", "test");
if ($mysqli->connect_error) {
die("Ошибка подключения: " . $mysqli->connect_error);
}
$stmt = $mysqli->prepare("DELETE FROM users WHERE id = ?");
$stmt->bind_param("i", $id);
$id = 10;
$stmt->execute();
echo "Запись удалена!";
$stmt->close();
$mysqli->close();
?>
Советы по безопасности:
Чтобы закрепить материал, выполните следующие задания.
products с полями id, name, price, quantity.Решение:
<?php
// Подключение к базе данных (пример для PDO)
try {
$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$stmt = $pdo->prepare("UPDATE products SET price = price * 1.1");
$stmt->execute();
echo "Цены обновлены!";
} catch (PDOException $e) {
echo "Ошибка: " . $e->getMessage();
}
?>
users добавьте поле last_login (тип DATETIME).Решение:
<?php
// Удаление неактивных пользователей (пример для mysqli)
$mysqli = new mysqli("localhost", "username", "password", "test");
if ($mysqli->connect_error) {
die("Ошибка подключения: " . $mysqli->connect_error);
}
$query = "DELETE FROM users WHERE last_login < NOW() - INTERVAL 1 YEAR";
if ($mysqli->query($query) === TRUE) {
echo "Неактивные пользователи удалены!";
} else {
echo "Ошибка: " . $mysqli->error;
}
$mysqli->close();
?>
WHERE id = '5'.
bind_param("i", $id) в mysqli).Чтобы продолжить обучение, переходите по ссылке: полный курс по PHP для начинающих.
Спасибо за внимание и до встречи в следующем уроке!