PHP
数据库 | Database

PDO::query

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对象,并通过对PDOStatement :: execute()的多个调用发出语句,则会实现更好的性能。

如果在发出对PDO :: query()的下一个调用之前,您没有获取结果集中的所有数据,则您的调用可能会失败。调用PDOStatement :: closeCursor()以在发出对PDO :: query()的下一个调用之前释放与PDOStatement对象关联的数据库资源。

注意:尽管这个函数只被记录为具有单个参数,但您可以将其他参数传递给此函数。它们将被视为在结果语句对象上调用PDOStatement :: setFetchMode()。

参数

statement

在准备与执行阶段的SQL语句。

查询中的数据应正确转义。

返回值

PDO :: query()返回一个PDOStatement对象,或者FALSE失败。

示例

示例#1演示PDO ::查询

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() - 执行准备好的语句

← PDO::prepare

PDO::quote →