PHP: Работа с базами данных

Введение

Работа с базами данных является неотъемлемой частью многих веб-приложений. Отправка и получение данных из базы данных — это одна из основных функций веб-сайтов, которые позволяют пользователям сохранять, обновлять и извлекать информацию. В этой части статьи мы рассмотрим основы работы с базами данных в PHP и узнаем, как обеспечить безопасность данных.

Подключение к базе данных

Прежде чем начать работу с базой данных, необходимо установить соединение с ней. В PHP для работы с большинством популярных баз данных используется расширение PDO (PHP Data Objects) или расширение MySQLi. Первое предоставляет единый интерфейс для работы с различными типами баз данных, а второе специализируется на работе с MySQL.

Пример подключения к базе данных MySQL с использованием MySQLi:

$servername = "localhost";
$username = "пользователь";
$password = "пароль";
$dbname = "имя_базы_данных";

// Создание соединения
$conn = new mysqli($servername, $username, $password, $dbname);

// Проверка соединения
if ($conn->connect_error) {
    die("Ошибка подключения: " . $conn->connect_error);
}
echo "Успешное подключение к базе данных";

Выполнение SQL-запросов

После успешного подключения к базе данных можно выполнять SQL-запросы для работы с данными. SQL (Structured Query Language) — это язык для управления данными в реляционных базах данных. С помощью SQL можно создавать таблицы, добавлять, обновлять и удалять данные.

Пример выполнения простого SQL-запроса на выборку данных:

$sql = "SELECT id, имя, возраст FROM пользователи";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "ID: " . $row["id"]. " - Имя: " . $row["имя"]. " - Возраст: " . $row["возраст"]. "<br>";
    }
} else {
    echo "Нет данных";
}

Защита от SQL-инъекций

Одной из наиболее распространенных уязвимостей веб-приложений является SQL-инъекция. Это атака, при которой злоумышленник вводит в поля ввода злонамеренные данные, которые могут повлиять на выполнение SQL-запросов. Для защиты от SQL-инъекций рекомендуется использовать параметризованные запросы или подготовленные выражения.

Пример параметризованного запроса с использованием подготовленных выражений:

$stmt = $conn->prepare("INSERT INTO пользователи (имя, возраст) VALUES (?, ?)");
$stmt->bind_param("si", $имя, $возраст);

$имя = "Иван";
$возраст = 25;
$stmt->execute();

echo "Данные успешно добавлены";
$stmt->close();

Заключение

Работа с базами данных — это фундаментальный аспект веб-разработки на PHP. Подключение к базе данных, выполнение SQL-запросов и обеспечение безопасности данных являются важными навыками для каждого PHP-разработчика. При следовании хорошим практикам и использовании параметризованных запросов можно обеспечить безопасность данных и предотвратить уязвимости веб-приложений. Надеюсь, эта часть статьи помогла вам понять основы работы с базами данных на PHP. В следующих статьях мы рассмотрим основы безопасности в PHP и меры по ее обеспечению.

Иван Смирнов

37-летний веб-разработчик из Москвы, специализируюсь на PHP. Работаю на должности backend-developer уже 8 лет. Закончил Институт международного образования МПГУ по программе "Разработка мобильных и веб-приложений" и сейчас работаю в одном из российских банков, название которого запрещено разглашать. В проекте code4web я отвечаю за статьи на тему backend-разработки и программирования на языке PHP. Мне нравится делиться своими знаниями. Это мотивирует меня упорядочивать свой опыт и навыки.

Code4Web