Encodera

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

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

Справочник PHP

PDOStatement

Подготовленный запрос и его результат.

Синтаксис

$statement = $pdo->prepare(string $query)

Параметры

ПараметрТипОписание
$querystringТекст запроса со знаками `?` или именами `: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 — Подключение к базе данных.

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

В учебнике

  • Подготовленные запросы — Подготовленные запросы PDO в PHP — как безопасно подставлять данные в SQL и защититься от SQL-инъекций.

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

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