Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про PHP: mysqli, pdo, database

Каковы различия между MySQLi и PDO?

Вопрос проверяет знание двух популярных способов работы с базой данных MySQL в PHP и их основные отличия.

Короткий ответ

MySQLi — это расширение, предназначенное только для работы с MySQL, оно поддерживает процедурный и объектно-ориентированный стили программирования. PDO (PHP Data Objects) — универсальный инструмент для работы с разными базами данных (MySQL, PostgreSQL, SQLite и др.), который работает только в объектно-ориентированном стиле. PDO предоставляет унифицированный интерфейс и поддерживает именованные параметры в запросах, тогда как MySQLi лучше подходит для специфичных функций MySQL, например, хранимых процедур.

Длинный ответ

 Основные различия между MySQLi и PDO:

1. Поддержка баз данных:

  • MySQLi работает только с MySQL.

  • PDO поддерживает множество СУБД (PostgreSQL, SQLite, Oracle и др.).

2. Стиль программирования:

  • MySQLi предлагает процедурный и объектно-ориентированный интерфейсы.

  • PDO работает только с объектно-ориентированным подходом.

3. Именованные параметры:

  • PDO позволяет использовать именованные параметры в запросах:

$stmt = $pdo->prepare("SELECT * FROM users WHERE name = :name");
$stmt->execute(['name' => 'John']);
  • MySQLi поддерживает только позиционные параметры.

4. Универсальность:

  • PDO позволяет легко переключаться между СУБД.

  • MySQLi подходит только для проектов с MySQL.

Пример использования MySQLi:

$conn = new mysqli("localhost", "user", "password", "database");
$stmt = $conn->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
$result = $stmt->get_result();

Пример использования PDO:

$pdo = new PDO("mysql:host=localhost;dbname=database", "user", "password");
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([$id]);
$result = $stmt->fetch();

Используйте MySQLi для MySQL-специфичных проектов, а PDO — для приложений, которые могут работать с разными СУБД.

Уровень

  • Рейтинг:

    3

  • Сложность:

    6

Навыки

  • PHP

    PHP

Ключевые слова

#mysqli

#pdo

#database

Подпишись на PHP Developer в телеграм