函数名称:PDOStatement::fetch()
适用版本:PHP 5 >= 5.1.0, PHP 7, PHP 8
函数描述:从结果集中获取下一行作为关联数组、数字索引数组或两者兼有的形式
用法: PDOStatement::fetch(int $fetch_style = PDO::FETCH_BOTH, int $cursor_orientation = PDO::FETCH_ORI_NEXT, int $cursor_offset = 0) : mixed|false
参数:
$fetch_style(可选):指定返回的数组类型,可选值包括:
- PDO::FETCH_ASSOC:返回关联数组
- PDO::FETCH_NUM:返回数字索引数组
- PDO::FETCH_BOTH(默认值):返回关联数组和数字索引数组
- PDO::FETCH_OBJ:返回以属性名对应列名的对象
- 其他自定义的PDO::FETCH_*常量
$cursor_orientation(可选):指定游标移动的方式,可选值包括:
- PDO::FETCH_ORI_NEXT(默认值):下一行
- PDO::FETCH_ORI_PRIOR:上一行
- PDO::FETCH_ORI_FIRST:第一行
- PDO::FETCH_ORI_LAST:最后一行
- PDO::FETCH_ORI_ABS:绝对位置
- PDO::FETCH_ORI_REL:相对位置
$cursor_offset(可选):游标偏移量,默认为0,表示不偏移
返回值:
- 成功时返回获取到的行数据,类型根据$fetch_style参数决定
- 如果没有更多的行可获取,则返回false
示例: <?php // 假设已经创建了一个名为 $stmt 的 PDOStatement 对象
// 获取关联数组 $row = $stmt->fetch(PDO::FETCH_ASSOC); print_r($row);
// 获取数字索引数组 $row = $stmt->fetch(PDO::FETCH_NUM); print_r($row);
// 获取关联数组和数字索引数组 $row = $stmt->fetch(PDO::FETCH_BOTH); print_r($row);
// 获取以属性名对应列名的对象 $row = $stmt->fetch(PDO::FETCH_OBJ); var_dump($row); ?>
注意事项:
- 在调用fetch()方法之前,需要先通过PDO对象的prepare()方法和execute()方法来准备和执行查询语句。
- fetch()方法可以重复调用,每次调用获取结果集的下一行数据,直到所有行都被获取完毕。
- 如果没有更多的行可获取,则返回false。因此,可以在while循环中使用fetch()方法来遍历所有行。