函数名:RowResult::fetchAll()
适用版本:PHP 8.0.0 及以上版本
用法:RowResult::fetchAll() 函数用于从数据库查询结果集中获取所有行,并以数组的形式返回。
语法:array RowResult::fetchAll(int $fetch_style = PDO::FETCH_BOTH, mixed $fetch_argument = NULL, array $ctor_args = array())
参数:
- $fetch_style(可选):指定返回结果的数组格式,默认为 PDO::FETCH_BOTH。可选的取值有:
- PDO::FETCH_ASSOC:返回关联数组。
- PDO::FETCH_NUM:返回索引数组。
- PDO::FETCH_BOTH(默认):同时返回关联数组和索引数组。
- PDO::FETCH_OBJ:返回以属性名对应列名的匿名对象。
- PDO::FETCH_CLASS:返回一个指定类的对象,属性名对应列名。
- $fetch_argument(可选):当 $fetch_style 为 PDO::FETCH_CLASS 时,可以指定类名或类实例。
- $ctor_args(可选):当 $fetch_style 为 PDO::FETCH_CLASS 时,可以指定类的构造函数参数。
返回值:返回一个包含所有行的数组,每行都是一个关联数组或索引数组,具体格式取决于 $fetch_style 参数的取值。
示例:
// 假设有一个名为 $stmt 的 PDOStatement 对象表示查询结果集
// 使用默认参数,返回关联数组和索引数组
$rows = $stmt->fetchAll();
foreach ($rows as $row) {
echo $row['column1'] . ' - ' . $row[1] . "\n";
}
// 返回关联数组
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($rows as $row) {
echo $row['column1'] . ' - ' . $row['column2'] . "\n";
}
// 返回索引数组
$rows = $stmt->fetchAll(PDO::FETCH_NUM);
foreach ($rows as $row) {
echo $row[0] . ' - ' . $row[1] . "\n";
}
// 返回匿名对象
$rows = $stmt->fetchAll(PDO::FETCH_OBJ);
foreach ($rows as $row) {
echo $row->column1 . ' - ' . $row->column2 . "\n";
}
// 返回指定类的对象
class MyClass {
public $column1;
public $column2;
}
$rows = $stmt->fetchAll(PDO::FETCH_CLASS, 'MyClass');
foreach ($rows as $row) {
echo $row->column1 . ' - ' . $row->column2 . "\n";
}
注意:RowResult::fetchAll() 函数是 PDOStatement 类的方法,因此需要先创建一个 PDOStatement 对象来调用该方法。示例中的 $stmt 变量表示一个 PDOStatement 对象。