Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник PHP

PDO

Подключение к базе данных.

Синтаксис

new PDO(string $dsn, ?string $username = null, ?string $password = null, ?array $options = null)

Параметры

ПараметрТипОписание
$dsnstringСтрока подключения: тип базы, адрес сервера, название базы.
$username?stringНеобязательный. Имя пользователя.
$password?stringНеобязательный. Пароль.
$options?arrayНеобязательный. Настройки подключения.

Возвращаемое значение

PDOОбъект с методами `query()`, `prepare()`, `exec()`, `beginTransaction()`.

Примеры

Подключение, создание таблицы и запрос:

<?php
 
$pdo = new PDO('sqlite::memory:');
$pdo->exec('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)');
$pdo->exec("INSERT INTO users (name) VALUES ('Anna'), ('Oleg')");
 
echo $pdo->query('SELECT COUNT(*) FROM users')->fetchColumn();

Результат:

2

Транзакция:

<?php
 
$pdo = new PDO('sqlite::memory:');
$pdo->exec('CREATE TABLE accounts (id INTEGER PRIMARY KEY, balance INTEGER)');
$pdo->exec('INSERT INTO accounts (balance) VALUES (500), (100)');
 
$pdo->beginTransaction();
$pdo->exec('UPDATE accounts SET balance = balance - 200 WHERE id = 1');
$pdo->exec('UPDATE accounts SET balance = balance + 200 WHERE id = 2');
$pdo->commit();
 
echo implode(', ', $pdo->query('SELECT balance FROM accounts')->fetchAll(PDO::FETCH_COLUMN));

Результат:

300, 300

Примечания

Строка подключения к MySQL выглядит так: mysql:host=localhost;dbname=shop;charset=utf8mb4. Данные от пользователя передавайте только через prepare(), а не подставляйте в текст запроса.

См. также

  • PDOStatement — Подготовленный запрос и его результат.
  • Exception — Базовый класс исключений.

Вопросы и ответы по теме

В учебнике

  • Подключение к базе данных — Работа с базой данных в PHP через PDO — подключение, создание таблицы, выборка строк и обработка ошибок.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.