Работа с PDO
Используйте объекты данных PHP (PDO) для взаимодействия с базами данных
«Работа с PDO» — бесплатный урок PHP Academy на CoddyKit. Это урок 6 из 6. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения PHP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс PHP Academy содержит 6 уроков всего.
Обзор PDO
Работа с PDO
Добро пожаловать на следующий урок! На этом уроке вы узнаете, как использовать PDO (объекты данных PHP) для взаимодействия с базой данных. PDO — гибкий и безопасный способ подключаться к базам данных и работать с ними. Давайте начнём!

Что такое PDO?
Что такое PDO?
PDO (объекты данных PHP) — это уровень доступа к базе данных, который предоставляет единый интерфейс для работы с различными системами баз данных. Он поддерживает множество баз данных, включая MySQL, PostgreSQL, SQLite и другие.
Основные возможности:
- Независимость от базы данных (работа с несколькими типами баз данных).
- Встроенная поддержка подготовленных запросов.
- Расширенные возможности обработки ошибок.
Совет: PDO отлично подходит для создания безопасных и масштабируемых веб-приложений.
Подключение к базе данных с помощью PDO
Подключение к базе данных с помощью PDO
Чтобы подключиться к базе данных с помощью PDO, вам потребуются:
- Имя источника данных (DSN), включающее тип базы данных, хост и имя.
- Действительные имя пользователя и пароль.
Пример:
Совет: используйте переменные окружения или конфигурационные файлы для хранения конфиденциальных учётных данных.
<?php
$dsn = "mysql:host=localhost;dbname=testdb";
$username = "root";
$password = "";
try {
$pdo = new PDO($dsn, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully!";
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
Выполнение запросов
Выполнение запросов
PDO предоставляет два основных метода выполнения запросов:
exec(): для операторов, которые не возвращают результаты (например,INSERT,UPDATE).query(): для операторов, которые возвращают результаты (например,SELECT).
Пример:
<?php
// Insert a record
$pdo->exec("INSERT INTO users (name, email) VALUES ('Alice', 'alice@mail.com')");
// Retrieve records
$stmt = $pdo->query("SELECT * FROM users");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "Name: " . $row["name"] . ", Email: " . $row["email"] . "<br>";
}
?>
Использование подготовленных запросов
Использование подготовленных запросов
Подготовленные запросы необходимы для безопасного и эффективного взаимодействия с базой данных. Пример:
Совет: используйте заполнители (:email), чтобы предотвращать SQL-инъекции.
<?php
$sql = "SELECT * FROM users WHERE email = :email";
$stmt = $pdo->prepare($sql);
$stmt->execute(["email" => "alice@mail.com"]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
echo "Name: " . $user["name"];
?>
Обработка ошибок в PDO
Обработка ошибок в PDO
PDO поддерживает три режима обработки ошибок:
ERRMODE_SILENT: ошибки необходимо проверять вручную.ERRMODE_WARNING: ошибки вызывают предупреждения PHP.ERRMODE_EXCEPTION: ошибки вызывают исключения (рекомендуется).
Пример:
<?php
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
$pdo->exec("INVALID SQL STATEMENT");
} catch (PDOException $e) {
echo "Error: " . $e->getMessage();
}
?>
Получение данных
Получение данных
PDO предоставляет несколько методов получения данных:
fetch(): получает одну строку.fetchAll(): получает все строки.fetchColumn(): получает значение одного столбца.
Пример:
<?php
$stmt = $pdo->query("SELECT name FROM users");
while ($name = $stmt->fetchColumn()) {
echo "User: " . $name . "<br>";
}
?>Управление транзакциями
Управление транзакциями
Используйте транзакции, чтобы выполнять несколько запросов как единое целое. Пример:
Совет: используйте транзакции для обеспечения целостности данных.
<?php
try {
$pdo->beginTransaction();
$pdo->exec("INSERT INTO users (name, email) VALUES ('Bob', 'bob@mail.com')");
$pdo->exec("INSERT INTO users (name, email) VALUES ('Charlie', 'charlie@mail.com')");
$pdo->commit();
echo "Transaction successful!";
} catch (PDOException $e) {
$pdo->rollBack();
echo "Transaction failed: " . $e->getMessage();
}
?>
Отличная работа!
Отличная работа!
Поздравляем! Вы научились использовать PDO для безопасного и эффективного взаимодействия с базой данных, включая подключение, выполнение запросов и управление транзакциями. В следующем уроке мы рассмотрим расширенные методы составления SQL-запросов с помощью PDO. Продолжайте программировать!

Часто задаваемые вопросы
Урок «Работа с PDO» бесплатный?
Да — полный текст урока «Работа с PDO» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс PHP Academy, подпишись на CoddyKit PRO. Курс PHP Academy содержит 6 уроков всего.
Чему я научусь в уроке «Работа с PDO»?
Используйте объекты данных PHP (PDO) для взаимодействия с базами данных Ты практикуешь PHP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать PHP Academy?
Предыдущий опыт не требуется. PHP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 6 из 6.
Сколько времени занимает урок «Работа с PDO»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке PHP Academy?
Да. Каждый урок PHP Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Введение в базы данных
- Подключение к базе данных MySQL
- Управление таблицами
- Выполнение операций CRUD
- Подготовленные выражения
- Работа с PDO