函数名称:SqlStatementResult::fetchAll()
适用版本:PHP 5 >= 5.4.0, PHP 7, PHP 8
函数说明:SqlStatementResult::fetchAll()
方法用于从数据库查询结果集中获取所有行作为关联数组、数字索引数组或同时包含关联和数字索引的混合数组。
语法:public SqlStatementResult::fetchAll(int $fetch_style = PDO::FETCH_BOTH, mixed $fetch_argument = NULL, array $ctor_args = array()): array|false
参数:
$fetch_style
:可选参数,指定返回的数组类型,默认为PDO::FETCH_BOTH
。可以是以下常量之一:PDO::FETCH_ASSOC
:返回关联数组。PDO::FETCH_NUM
:返回数字索引数组。PDO::FETCH_BOTH
:返回同时包含关联和数字索引的混合数组。PDO::FETCH_OBJ
:返回匿名对象,属性名对应列名。PDO::FETCH_CLASS
:返回指定类的对象,属性名对应列名。PDO::FETCH_COLUMN
:返回指定列的值。PDO::FETCH_KEY_PAIR
:返回包含第一列作为键、第二列作为值的关联数组。PDO::FETCH_UNIQUE
:返回包含所有行的关联数组,键为第一列的值,值为整个行的关联数组。PDO::FETCH_GROUP
:返回包含所有行的关联数组,键为指定列的值,值为该列的所有行的关联数组。
$fetch_argument
:可选参数,根据$fetch_style
的不同,此参数的含义也不同。具体用法请参考官方文档。$ctor_args
:可选参数,当$fetch_style
为PDO::FETCH_CLASS
时,指定类的构造函数参数。
返回值:成功时返回包含所有行的数组,失败时返回 false
。
示例:
// 假设已经建立了一个数据库连接 $pdo
// 执行查询语句
$stmt = $pdo->query("SELECT * FROM users");
// 获取所有行作为关联数组
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
print_r($result);
// 获取所有行作为数字索引数组
$result = $stmt->fetchAll(PDO::FETCH_NUM);
print_r($result);
// 获取所有行作为同时包含关联和数字索引的混合数组
$result = $stmt->fetchAll(PDO::FETCH_BOTH);
print_r($result);
// 获取所有行作为匿名对象
$result = $stmt->fetchAll(PDO::FETCH_OBJ);
print_r($result);
// 获取所有行作为指定类的对象
$result = $stmt->fetchAll(PDO::FETCH_CLASS, 'User');
print_r($result);
// 获取所有行的第一列的值
$result = $stmt->fetchAll(PDO::FETCH_COLUMN, 0);
print_r($result);
// 获取所有行的第一列作为键,第二列作为值的关联数组
$result = $stmt->fetchAll(PDO::FETCH_KEY_PAIR);
print_r($result);
// 获取所有行的第一列的值作为键,整个行的关联数组作为值的关联数组
$result = $stmt->fetchAll(PDO::FETCH_UNIQUE);
print_r($result);
// 获取所有行的指定列的值作为键,该列的所有行的关联数组作为值的关联数组
$result = $stmt->fetchAll(PDO::FETCH_GROUP);
print_r($result);
注意:上述示例中的 $pdo
是一个已经建立的 PDO 对象,User
是一个自定义的类名。请根据实际情况进行修改。