
Почему PDO?
PDO поддерживает разные СУБД, включая MySQL, PostgreSQL и SQLite. Он позволяет использовать подготовленные выражения, что защищает от SQL-инъекций, и делает код более универсальным и читаемым.
Пример подключения к базе данных
Предположим, у нас есть база данных test_db с таблицей users. Для подключения создаём файл db_connect.php:
<?php
$host = 'localhost';
$db = 'test_db';
$user = 'root';
$pass = 'password';
$charset = 'utf8mb4';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
try {
$pdo = new PDO($dsn, $user, $pass, $options);
echo "Подключение успешно!";
} catch (\PDOException $e) {
echo "Ошибка подключения: " . $e->getMessage();
}
?>
В этом коде мы:
задаём параметры подключения (host, dbname, user, pass);
формируем DSN (Data Source Name) для MySQL;
указываем опции PDO — чтобы ошибки бросались как исключения, а выборка возвращалась в виде ассоциативного массива;
оборачиваем создание объекта PDO в try-catch для безопасной обработки ошибок.
Выполнение запроса
После подключения можно легко выполнять запросы к базе. Например, получить всех пользователей:
$stmt = $pdo->query("SELECT id, name, email FROM users");
while ($row = $stmt->fetch()) {
echo "{$row['id']}: {$row['name']} ({$row['email']})<br>";
}
Или использовать подготовленные выражения с параметрами:
$name = 'Иван';
$stmt = $pdo->prepare("SELECT * FROM users WHERE name = :name");
$stmt->execute(['name' => $name]);
$user = $stmt->fetch();
if ($user) {
echo "Найден пользователь: {$user['name']}, email: {$user['email']}";
} else {
echo "Пользователь не найден";
}
Такой подход защищает от SQL-инъекций и позволяет безопасно работать с динамическими данными. Подключение к базе данных в PHP с помощью PDO — это современный, безопасный и универсальный способ. Он подходит как для небольших проектов, так и для крупных веб-приложений. Использование подготовленных выражений и правильная обработка ошибок обеспечивают надёжность и защиту данных.
С этим подходом вы сможете быстро настроить взаимодействие PHP с MySQL и строить динамические веб-приложения, которые легко масштабировать и поддерживать.







