PDOStatement
Подготовленный запрос и его результат.
Синтаксис
$statement = $pdo->prepare(string $query)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| $query | string | Текст запроса со знаками `?` или именами `:name` на месте значений. |
Возвращаемое значение
PDOStatementОбъект с методами `execute()`, `fetch()`, `fetchAll()`, `fetchColumn()`, `rowCount()`.
Примеры
Запрос с параметром:
<?php
$pdo = new PDO('sqlite::memory:');
$pdo->exec('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)');
$pdo->exec("INSERT INTO users (name, age) VALUES ('Anna', 25), ('Oleg', 31)");
$statement = $pdo->prepare('SELECT name FROM users WHERE age > ?');
$statement->execute([30]);
echo $statement->fetchColumn();Результат:
OlegВсе строки ассоциативными массивами:
<?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')");
$statement = $pdo->prepare('SELECT id, name FROM users ORDER BY id');
$statement->execute();
echo json_encode($statement->fetchAll(PDO::FETCH_ASSOC));Результат:
[{"id":1,"name":"Anna"},{"id":2,"name":"Oleg"}]Примечания
fetch() возвращает одну строку или false, когда строки закончились; fetchAll() — сразу все строки.
См. также
- PDO — Подключение к базе данных.
Вопросы и ответы по теме
- Как вывести записи из базы постранично
- Как выполнить несколько запросов в транзакции
- Как добавить запись в базу данных
- Как изменить запись в базе данных
- Как найти записи по части строки
- Как подключиться к базе данных
- Как получить строки из базы данных
- Как получить id добавленной записи
- Как посчитать количество записей в таблице
- Как проверить, есть ли запись в базе данных
- Как удалить запись из базы данных
В учебнике
- Подготовленные запросы — Подготовленные запросы PDO в PHP — как безопасно подставлять данные в SQL и защититься от SQL-инъекций.