0Pricing
PHP Academy · Урок

Работа с PDO

Используйте объекты данных PHP (PDO) для взаимодействия с базами данных

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

Обзор PDO

Работа с PDO

Добро пожаловать на следующий урок! На этом уроке вы узнаете, как использовать PDO (объекты данных PHP) для взаимодействия с базой данных. PDO — гибкий и безопасный способ подключаться к базам данных и работать с ними. Давайте начнём!

Работа с PDO — иллюстрация 1

Что такое 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 — иллюстрация 10

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

Урок «Работа с 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 — локальная установка не требуется.

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

  1. Введение в базы данных
  2. Подключение к базе данных MySQL
  3. Управление таблицами
  4. Выполнение операций CRUD
  5. Подготовленные выражения
  6. Работа с PDO
← Назад к PHP Academy