PHP PDO fetchAll()的用法(附带实例)
在 PHP 中,使用 query() 方法执行 SQL 语句后,返回的结果是 PDOStatement 类对象。通过 PDOStatement类对象可以对结果集进行处理,常用的处理结果集的方法有 fetch()、fetchColumn() 和 fetchAll()。
fetchAll() 方法用于获取结果集中的所有行数据,其基本语法格式如下:
下面演示如何使用 fetchAll() 方法处理结果集。用fetchAll() 方法以关联数组形式获取结果集,示例代码如下:
fetchAll() 方法用于获取结果集中的所有行数据,其基本语法格式如下:
array PDOStatement::fetchAll ( int $mode, // 返回方式(可选参数) mixed $fetch_argument, // 可滚动游标(可选参数) array $ctor_args = array() // PDO::FETCH_CLASS的参数(可选参数) )在上述语法格式中:
- $mode 用于控制结果集中数据的返回方式,默认值为 PDO::FETCH_BOTH;
- $ctor_args 表示当 $fetch_style 的值为 PDO::FETCH_CLASS 时,自定义类构造方法的参数;
- $fetch_argument 根据 $mode 参数值的变化而有不同的意义,$mode 的可选值具体如下表所示。
可选值 | 作用 | 返回值 |
---|---|---|
PDO::FETCH_COLUMN | 提取结果集中的单个列的值 | 返回指定索引位置的列值,索引从 0 开始计数 |
PDO::FETCH_CLASS | 将结果集中的数据映射为指定类的对象 | 返回一个指定类的对象,其中的属性会被赋值为结果集中对应的列值 |
PDO::FETCH_FUNC | 使用自定义的回调函数处理结果集中的每一行数据 | 返回回调函数处理后的结果 |
下面演示如何使用 fetchAll() 方法处理结果集。用fetchAll() 方法以关联数组形式获取结果集,示例代码如下:
<?php $dsn = 'mysql:host=localhost;port=3306;dbname=myframe;charset=utf8mb4'; $pdo = new PDO($dsn, 'root', '123456'); $sql = 'SELECT `id`, `name` FROM `student` LIMIT 2'; $res = $pdo->query($sql); $data = $res->fetchAll(PDO::FETCH_ASSOC); print_r($data);上述代码的输出结果如下:
Array (
[0] => Array ( [id] => 1 [name] => Allen )
[1] => Array ( [id] => 2 [name] => James )
)