PDO::query

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

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

Описание

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

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