PDO::query

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)

PDO::query Подготавливает и выполняет выражение SQL без заполнителей

Описание

publicPDO::query(string$query, ?int$fetchMode = null): PDOStatement|false
publicPDO::query(string$query, ?int$fetchMode = PDO::FETCH_COLUMN, int$colno): PDOStatement|false
publicPDO::query(
    string$query,
    ?int$fetchMode = PDO::FETCH_CLASS,
    string$classname,
    array$constructorArgs
): PDOStatement|false
publicPDO::query(string$query, ?int$fetchMode = PDO::FETCH_INTO, object$object): PDOStatement|false

PDO::query() подготавливает и выполняет выражение SQL за один вызов функции, возвращая выражение как объект PDOStatement.

Если запрос будет запускаться многократно, для улучшения производительности приложения имеет смысл этот запрос один раз подготовить PDOStatement методом PDO::prepare(), а затем запускать на выполнение методом PDOStatement::execute() столько раз, сколько потребуется.

Если после выполнения предыдущего запроса вы не выбрали все данные из результирующего набора, следующий вызов PDO::query() может потерпеть неудачу. В таких случаях следует вызывать метод PDOStatement::closeCursor(), который освободит ресурсы базы данных, занятые предыдущим объектом PDOStatement. После этого можно безопасно вызывать PDO::query().

Замечание:

Если query содержит заполнители, выражение должно быть подготовлено и выполнено отдельно с использованием методов PDO::prepare() и PDOStatement::execute().

Список параметров

query

SQL-запрос для подготовки и выполнения.

Если SQL содержит заполнители, вместо этого метода следует использовать PDO::prepare() и PDOStatement::execute(). В качестве альтернативы, SQL можно подготовить вручную перед вызовом PDO::query(), при этом данные должны быть правильно отформатированы с использованием PDO::quote(), если драйвер поддерживает это.

fetchMode

Режим выборки по умолчанию для возвращённого PDOStatement. Должен быть одной из констант PDO::FETCH_*.

Если этот аргумент передаётся функции, остальные аргументы будут обрабатываться так, как если бы PDOStatement::setFetchMode() был вызван для полученного объекта выражения. Последующие аргументы зависят от выбранного режима выборки.

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

Возвращает объект PDOStatement или false, если возникла ошибка.

Ошибки

Выдаёт ошибку уровня E_WARNING, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_WARNING.

Выбрасывает исключение PDOException, если атрибуту PDO::ATTR_ERRMODE установлено значение PDO::ERRMODE_EXCEPTION.

Примеры

Пример #1 SQL без заполнителей может быть выполнен с использованием PDO::query()

<?php
$sql
= 'SELECT name, color, calories FROM fruit ORDER BY name';
foreach (
$conn->query($sql) as $row) {
print
$row['name'] . "\t";
print
$row['color'] . "\t";
print
$row['calories'] . "\n";
}
?>

Результат выполнения приведённого примера:

apple red 150 banana yellow 250 kiwi brown 75 lemon yellow 25 orange orange 300 pear green 150 watermelon pink 90

Смотрите также

  • PDO::exec() - Выполняет SQL-запрос и возвращает количество затронутых строк
  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает связанный с этим запросом объект
  • PDOStatement::execute() - Запускает подготовленный запрос на выполнение
To Top