0Pricing
PHP Academy · Урок

Подключение к MySQL с помощью PDO

Создавайте подключение PDO, указав DSN, имя пользователя и пароль

«Подключение к MySQL с помощью PDO» — бесплатный урок PHP Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения PHP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс PHP Academy содержит 4 уроков всего.

Что такое PDO

PDO (объекты данных PHP) — это слой абстракции доступа к базе данных. Один API работает с MySQL, PostgreSQL, SQLite и другими системами — достаточно изменить DSN.

DSN

Строка DSN (имя источника данных) определяет драйвер, узел, порт и имя базы данных.

<?php
$dsn = "mysql:host=127.0.0.1;port=3306;dbname=myapp;charset=utf8mb4";

Создание экземпляра PDO

Передайте DSN, имя пользователя и пароль конструктору PDO. Оберните вызов в try/catch, чтобы обрабатывать ошибки подключения.

<?php
try {
    $pdo = new PDO(
        "mysql:host=127.0.0.1;dbname=myapp;charset=utf8mb4",
        "db_user",
        "db_pass"
    );
} catch (PDOException $e) {
    die("Connection failed: ".$e->getMessage());
}

Режим ошибок

Установите режим ошибок, при котором выбрасываются исключения, чтобы ошибки никогда не игнорировались молча.

<?php
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

Режим выборки по умолчанию

Настройте стиль выборки по умолчанию — ассоциативные массивы наиболее удобны.

<?php
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

Полная настройка подключения

Рекомендуемый подход: один раз создайте PDO со всеми атрибутами, а затем передавайте этот экземпляр в нужные места.

<?php
function createPDO(): PDO {
    return new PDO(
        "mysql:host=127.0.0.1;dbname=myapp;charset=utf8mb4",
        "root", "secret",
        [
            PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
            PDO::ATTR_EMULATE_PREPARES   => false,
        ]
    );
}

Эмулируемые подготовленные выражения

Установка ATTR_EMULATE_PREPARES в значение false использует настоящие подготовленные выражения на стороне сервера — это безопаснее и эффективнее.

charset=utf8mb4

Всегда указывайте charset=utf8mb4 в DSN. Это поддерживает полный диапазон Unicode, включая эмодзи. Никогда не используйте старый псевдоним utf8.

Выполнение простого запроса

Используйте query() только для операторов, не содержащих пользовательских данных.

<?php
$stmt = $pdo->query("SELECT COUNT(*) as total FROM users");
$row  = $stmt->fetch();
echo $row["total"];

exec() для операторов, отличных от SELECT

exec() выполняет оператор, не возвращающий результат, и возвращает количество затронутых строк.

<?php
$count = $pdo->exec("DELETE FROM sessions WHERE expires_at < NOW()");
echo "Deleted $count expired sessions";

Постоянные подключения

PDO поддерживает постоянные подключения через PDO::ATTR_PERSISTENT => true. В средах PHP-FPM обычно предпочтительнее использовать пул подключений.

Итоги

Создайте PDO с DSN, установите ERRMODE_EXCEPTION и FETCH_ASSOC, отключите эмулируемые подготовленные выражения. Никогда не вызывайте query() с данными, предоставленными пользователем, — используйте подготовленные выражения.

Быстрая проверка

Какой атрибут заставляет PDO выбрасывать исключения при ошибках?

Часто задаваемые вопросы

Урок «Подключение к MySQL с помощью PDO» бесплатный?

Да — полный текст урока «Подключение к MySQL с помощью PDO» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс PHP Academy, подпишись на CoddyKit PRO. Курс PHP Academy содержит 4 уроков всего.

Чему я научусь в уроке «Подключение к MySQL с помощью PDO»?

Создавайте подключение PDO, указав DSN, имя пользователя и пароль Ты практикуешь PHP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать PHP Academy?

Предыдущий опыт не требуется. PHP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Подключение к MySQL с помощью PDO»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке PHP Academy?

Да. Каждый урок PHP Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Подключение к MySQL с помощью PDO
  2. Подготовленные выражения и привязка параметров
  3. Получение результатов с помощью PDO
  4. Транзакции с PDO
← Назад к PHP Academy