PDO::query

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

PDO::query Выполняет SQL запрос и возвращает результирующий набор в виде объекта PDOStatement

Описание

public PDOStatement PDO::query ( string $statement )
public PDOStatement PDO::query ( string $statement , int $PDO::FETCH_COLUMN , int $colno )
public PDOStatement PDO::query ( string $statement , int $PDO::FETCH_CLASS , string $classname , array $ctorargs )
public PDOStatement PDO::query ( string $statement , int $PDO::FETCH_INTO , object $object )

PDO::query() выполняет SQL запрос без подготовки и возвращает результирующий набор (если есть) в виде объекта PDOStatement.

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

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

Замечание:

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

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

statement

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

Данные в запросе должны быть правильно экранированы.

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

PDO::query() возвращает объект PDOStatement или FALSE, если запрос выполнить не удалось.

Примеры

Пример #1 Демонстрация работы PDO::query

Приятной особенностью PDO::query() является то, что после выполнения SELECT запроса можно сразу работать с результирующим набором посредством курсора.

<?php
function getFruit($conn) {
    
$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() - Запускает подготовленный запрос на выполнение