База данных
App\DataBase\PDO используется для работы с базой данных.
Инициализация класса
Объект базы данных уже доступен в глобальной переменной $PDO.
/** @var App\DataBase\PDO $PDO */
global $PDO;
В переменной $PDO доступны стандартные методы PDO, а также дополнительный метод
$PDO->execute($query, $data = null).
Простой запрос выборки данных
Код/Результат:
$statement = $PDO->execute('SELECT * FROM users');
$users = $statement->fetchAll();
echo print_r($users, true);
Array
(
[0] => Array
(
[id] => 1
[created_at] => 2026-03-24 11:21:46
[updated_at] => 2026-03-24 11:21:46
[email] => ivanov@mail.ru
[email_verified_at] => 2026-03-24 16:22:28
[password] => $2y$12$JHVe53hDKgjGSEL04Ly.dOJUvpbj2zDlG81uCfb0CjqCU7iIEHkRi
)
[1] => Array
(
[id] => 2
[created_at] => 2026-03-24 11:22:12
[updated_at] => 2026-03-24 11:22:12
[email] => petrov@mail.ru
[email_verified_at] =>
[password] => $2y$12$b1HZqBt99UqaiPBoI4pV6.seQcCoKdfvlI3cM0olyeA/yJrFSnqK2
)
[2] => Array
(
[id] => 3
[created_at] => 2026-03-24 11:22:50
[updated_at] => 2026-03-24 11:22:50
[email] => sidorov@mail.ru
[email_verified_at] => 2026-03-24 17:22:17
[password] => $2y$12$LSTYGoPI.eGmS773kKvLFeBnoNPXu6U7bj8F1tzo9ORuILRTps/bK
)
)
Запрос с позиционными плейсхолдерами
Код/Результат:
$statement = $PDO->execute('SELECT * FROM users WHERE id = ? OR id = ?', [1, 3]);
$users = $statement->fetchAll();
echo print_r($users, true);
Array
(
[0] => Array
(
[id] => 1
[created_at] => 2026-03-24 11:21:46
[updated_at] => 2026-03-24 11:21:46
[email] => ivanov@mail.ru
[email_verified_at] => 2026-03-24 16:22:28
[password] => $2y$12$JHVe53hDKgjGSEL04Ly.dOJUvpbj2zDlG81uCfb0CjqCU7iIEHkRi
)
[1] => Array
(
[id] => 3
[created_at] => 2026-03-24 11:22:50
[updated_at] => 2026-03-24 11:22:50
[email] => sidorov@mail.ru
[email_verified_at] => 2026-03-24 17:22:17
[password] => $2y$12$LSTYGoPI.eGmS773kKvLFeBnoNPXu6U7bj8F1tzo9ORuILRTps/bK
)
)
Запрос с именованными плейсхолдерами
Код/Результат:
$statement = $PDO->execute('SELECT * FROM users WHERE id = :firstId OR id = :secondId', [
':firstId' => 1,
':secondId' => 3,
]);
$users = $statement->fetchAll();
echo print_r($users, true);
Array
(
[0] => Array
(
[id] => 1
[created_at] => 2026-03-24 11:21:46
[updated_at] => 2026-03-24 11:21:46
[email] => ivanov@mail.ru
[email_verified_at] => 2026-03-24 16:22:28
[password] => $2y$12$JHVe53hDKgjGSEL04Ly.dOJUvpbj2zDlG81uCfb0CjqCU7iIEHkRi
)
[1] => Array
(
[id] => 3
[created_at] => 2026-03-24 11:22:50
[updated_at] => 2026-03-24 11:22:50
[email] => sidorov@mail.ru
[email_verified_at] => 2026-03-24 17:22:17
[password] => $2y$12$LSTYGoPI.eGmS773kKvLFeBnoNPXu6U7bj8F1tzo9ORuILRTps/bK
)
)
Запрос с offset и limit
Код/Результат:
$statement = $PDO->execute('SELECT * FROM users LIMIT ?, ?', [0, 2]);
$users = $statement->fetchAll();
echo print_r($users, true);
Array
(
[0] => Array
(
[id] => 1
[created_at] => 2026-03-24 11:21:46
[updated_at] => 2026-03-24 11:21:46
[email] => ivanov@mail.ru
[email_verified_at] => 2026-03-24 16:22:28
[password] => $2y$12$JHVe53hDKgjGSEL04Ly.dOJUvpbj2zDlG81uCfb0CjqCU7iIEHkRi
)
[1] => Array
(
[id] => 2
[created_at] => 2026-03-24 11:22:12
[updated_at] => 2026-03-24 11:22:12
[email] => petrov@mail.ru
[email_verified_at] =>
[password] => $2y$12$b1HZqBt99UqaiPBoI4pV6.seQcCoKdfvlI3cM0olyeA/yJrFSnqK2
)
)
Запрос с передачей массива в IN
Код/Результат:
$statement = $PDO->execute('SELECT * FROM users WHERE id IN (?l)', [
'list' => [1, 3],
]);
$users = $statement->fetchAll();
echo print_r($users, true);
Array
(
[0] => Array
(
[id] => 1
[created_at] => 2026-03-24 11:21:46
[updated_at] => 2026-03-24 11:21:46
[email] => ivanov@mail.ru
[email_verified_at] => 2026-03-24 16:22:28
[password] => $2y$12$JHVe53hDKgjGSEL04Ly.dOJUvpbj2zDlG81uCfb0CjqCU7iIEHkRi
)
[1] => Array
(
[id] => 3
[created_at] => 2026-03-24 11:22:50
[updated_at] => 2026-03-24 11:22:50
[email] => sidorov@mail.ru
[email_verified_at] => 2026-03-24 17:22:17
[password] => $2y$12$LSTYGoPI.eGmS773kKvLFeBnoNPXu6U7bj8F1tzo9ORuILRTps/bK
)
)
Запрос добавления данных
Код/Результат:
$statement = $PDO->execute('INSERT INTO users (?c) VALUES (?v)', [
'columns' => ['email', 'password'],
'values' => [
'komarov@mail.ru',
'$2y$12$9u6UAR0qpa5tH/ExpbsJR.FE7HZeccjRhMs.2WzxTpLDTcHhbs4iW',
],
]);
$affectedRows = $statement->rowCount();
echo $affectedRows;
1
Запрос обновления данных
Код/Результат:
$statement = $PDO->execute('UPDATE users SET ?d WHERE id = :id', [
'data' => [
'updated_at' => date('Y-m-d H:i:s'),
'email_verified_at' => '2026-03-24 16:48:39',
],
'id' => 4,
]);
$affectedRows = $statement->rowCount();
echo $affectedRows;
1