PHP中如何使用setFetchMode()方法来优化查询数据获取方式?
- 内容介绍
- 文章标签
- 相关推荐
本文共计552个文字,预计阅读时间需要3分钟。
`PDOStatement::fetch()` 方法用于从结果集中检索数据。其基本用法如下:
phpPDOStatement::fetch([int $fetch_style[, int $cursor_orientation=PDO::FETCH_ORI_NEXT[, int $cursor_offset=0]]]): mixed $fetch_style
此方法必须使用 `PDO::FETCH_*` 系列常量之一作为 `$fetch_style` 参数的值,例如:
- `PDO::FETCH_ASSOC`:返回关联数组。- `PDO::FETCH_NUM`:返回数字数组。- `PDO::FETCH_BOTH`:返回包含关联和数字键的数组。- `PDO::FETCH_OBJ`:返回对象。
注意:此方法返回的值取决于选择的 `$fetch_style`。
PDOStatement::fetch()PDOStatement::fetch ([ int $fetch_style [, int $cursor_orientation = PDO::FETCH_ORI_NEXT [, int $cursor_offset = 0 ]]] ) : mixed
$fetch_style此值必须是 PDO::FETCH_* 系列常量中的一个:
PDO::FETCH_ASSOC:返回一个索引为结果集列名的数组
PDO::FETCH_BOTH(默认):返回一个索引为结果集列名和以0开始的列号的数组
PDO::FETCH_BOUND:返回 TRUE ,并分配结果集中的列值给 PDOStatement::bindColumn() 方法绑定的 PHP 变量。
PDO::FETCH_CLASS:返回一个请求类的新实例,映射结果集中的列名到类中对应的属性名。如果 fetch_style 包含 PDO::FETCH_CLASSTYPE(例如:PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE),则类名由第一列的值决定。
PDO::FETCH_INTO:更新一个被请求类已存在的实例,映射结果集中的列到类中命名的属性
PDO::FETCH_LAZY:结合使用 PDO::FETCH_BOTH 和 PDO::FETCH_OBJ,创建供用来访问的对象变量名
PDO::FETCH_NUM:返回一个索引为以0开始的结果集列号的数组
PDO::FETCH_OBJ:返回一个属性名对应结果集列名的匿名对象
在默认使用fetch()方法的时候,我们会得到数据库中双重数据:
但是在数据库中,真的只有简单的一条数据:
如果你只想要获取单纯的一条索引为结果集列名,则只需要简单设置即可:
$statement->setFetchMode(PDO::FETCH_ASSOC);
本文共计552个文字,预计阅读时间需要3分钟。
`PDOStatement::fetch()` 方法用于从结果集中检索数据。其基本用法如下:
phpPDOStatement::fetch([int $fetch_style[, int $cursor_orientation=PDO::FETCH_ORI_NEXT[, int $cursor_offset=0]]]): mixed $fetch_style
此方法必须使用 `PDO::FETCH_*` 系列常量之一作为 `$fetch_style` 参数的值,例如:
- `PDO::FETCH_ASSOC`:返回关联数组。- `PDO::FETCH_NUM`:返回数字数组。- `PDO::FETCH_BOTH`:返回包含关联和数字键的数组。- `PDO::FETCH_OBJ`:返回对象。
注意:此方法返回的值取决于选择的 `$fetch_style`。
PDOStatement::fetch()PDOStatement::fetch ([ int $fetch_style [, int $cursor_orientation = PDO::FETCH_ORI_NEXT [, int $cursor_offset = 0 ]]] ) : mixed
$fetch_style此值必须是 PDO::FETCH_* 系列常量中的一个:
PDO::FETCH_ASSOC:返回一个索引为结果集列名的数组
PDO::FETCH_BOTH(默认):返回一个索引为结果集列名和以0开始的列号的数组
PDO::FETCH_BOUND:返回 TRUE ,并分配结果集中的列值给 PDOStatement::bindColumn() 方法绑定的 PHP 变量。
PDO::FETCH_CLASS:返回一个请求类的新实例,映射结果集中的列名到类中对应的属性名。如果 fetch_style 包含 PDO::FETCH_CLASSTYPE(例如:PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE),则类名由第一列的值决定。
PDO::FETCH_INTO:更新一个被请求类已存在的实例,映射结果集中的列到类中命名的属性
PDO::FETCH_LAZY:结合使用 PDO::FETCH_BOTH 和 PDO::FETCH_OBJ,创建供用来访问的对象变量名
PDO::FETCH_NUM:返回一个索引为以0开始的结果集列号的数组
PDO::FETCH_OBJ:返回一个属性名对应结果集列名的匿名对象
在默认使用fetch()方法的时候,我们会得到数据库中双重数据:
但是在数据库中,真的只有简单的一条数据:
如果你只想要获取单纯的一条索引为结果集列名,则只需要简单设置即可:
$statement->setFetchMode(PDO::FETCH_ASSOC);

