PDOStatement::fetchAll
PDOStatement::fetchAll — 返回一个包含结果集中所有行的数组(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
说明
语法
array PDOStatement::fetchAll ([ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array() ]]] )
参数
fetch_style
fetch_argument
根据 fetch_style 参数的值,此参数有不同的意义:
PDO::FETCH_COLUMN :返回指定以0开始索引的列。 PDO::FETCH_CLASS :返回指定类的实例,映射每行的列到类中对应的属性名。 PDO::FETCH_FUNC :将每行的列作为参数传递给指定的函数,并返回调用函数后的结果。ctor_args
当 fetch_style 参数为 PDO::FETCH_CLASS 时,自定义类的构造函数的参数。
返回值
PDOStatement::fetchAll()
返回一个包含结果集中所有剩余行的数组。此数组的每一行要么是一个列值的数组,要么是属性对应每个列名的一个对象。
使用此方法获取大结果集将导致系统负担加重且可能占用大量网络资源。与其取回所有数据后用PHP来操作,倒不如考虑使用数据库服务来处理结果集。例如,在取回数据并通过PHP处理前,在SQL 中使用 WHERE 和 ORDER BY 子句来限定结果。
实例
获取结果集中所有剩余的行
<?php$sth = $dbh->prepare("SELECT name, colour FROM fruit");$sth->execute();/* 获取结果集中所有剩余的行 */print("Fetch all of the remaining rows in the result set:/n");$result = $sth->fetchAll();print_r($result);?>
以上实例的输出为:
Fetch all of the remaining rows in the result set:Array( [0] => Array ( [NAME] => pear [0] => pear [COLOUR] => green [1] => green ) [1] => Array ( [NAME] => watermelon [0] => watermelon [COLOUR] => pink [1] => pink ))
获取结果集中单独一列的所有值
下面例子演示了如何从一个结果集中返回单独一列所有的值,尽管 SQL 语句自身可能返回每行多列。
<?php$sth = $dbh->prepare("SELECT name, colour FROM fruit");$sth->execute();/* 获取第一列所有值 */$result = $sth->fetchAll(PDO::FETCH_COLUMN, 0);var_dump($result);?>
新闻热点
疑难解答