PDOStatement 类 FETCH_* 系列

PDOStatement::fetch

说明

PDOStatement::fetch — 从一个 PDOStatement 对象相关的结果集中获取下一行。fetch_style 参数决定 POD 如何返回行。 


 

参数

fetch_style

控制下一行如何返回给调用者。此值必须是 PDO::FETCH_* 系列常量中的一个,缺省为 PDO::ATTR_DEFAULT_FETCH_MODE 的值 (默认为 PDO::FETCH_BOTH )。

  • PDO::FETCH_BOTH(默认):返回一个索引为结果集列名和以0开始的列号的数组 

  • PDO::FETCH_ASSOC:返回一个索引为结果集列名的数组 

  • PDO::FETCH_NUM:返回一个索引为以0开始的结果集列号的数组 

  • PDO::FETCH_OBJ:返回一个属性名对应结果集列名的匿名对象 

  • 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_BOTHPDO::FETCH_OBJ,创建供用来访问的对象变量名

 

cursor_orientation

对于 一个 PDOStatement 对象表示的可滚动游标,该值决定了哪一行将被返回给调用者。此值必须是 PDO::FETCH_ORI_* 系列常量中的一个,默认为 PDO::FETCH_ORI_NEXT。要想让 PDOStatement 对象使用可滚动游标,必须在用 PDO::prepare() 预处理SQL语句时,设置 PDO::ATTR_CURSOR 属性为 PDO::CURSOR_SCROLL

 

 

offset

对于一个 cursor_orientation 参数设置为 PDO::FETCH_ORI_ABS 的PDOStatement 对象代表的可滚动游标,此值指定结果集中想要获取行的绝对行号。

对于一个 cursor_orientation 参数设置为 PDO::FETCH_ORI_REL 的PDOStatement 对象代表的可滚动游标,此值指定想要获取行相对于调用 PDOStatement::fetch() 前游标的位置


 

返回值

此函数(方法)成功时返回的值依赖于提取类型。在所有情况下,失败都返回 FALSE 。 

 


 

 

 

PDOStatement::fetchAll

说明

PDOStatement::fetchAll — 返回一个包含结果集中所有行的数组   


 

参数

fetch_style

控制返回数组的内容如同 PDOStatement::fetch() 文档中记载的一样。默认为 PDO::ATTR_DEFAULT_FETCH_MODE 的值( 其缺省值为 PDO::FETCH_BOTH

想要返回一个包含结果集中单独一列所有值的数组,需要指定 PDO::FETCH_COLUMN 。通过指定 column-index 参数获取想要的列。

想要获取结果集中单独一列的唯一值,需要将 PDO::FETCH_COLUMNPDO::FETCH_UNIQUE 按位或。

想要返回一个根据指定列把值分组后的关联数组,需要将 PDO::FETCH_COLUMNPDO::FETCH_GROUP 按位或。 

fetch_argument

根据 fetch_style 参数的值,此参数有不同的意义:

  • PDO::FETCH_COLUMN:返回指定以0开始索引的列。

  • PDO::FETCH_CLASS:返回指定类的实例,映射每行的列到类中对应的属性名。

  • PDO::FETCH_FUNC:将每行的列作为参数传递给指定的函数,并返回调用函数后的结果。 

ctor_args

fetch_style 参数为 PDO::FETCH_CLASS 时,自定义类的构造函数的参数。 


 

返回值

PDOStatement::fetchAll() 返回一个包含结果集中所有剩余行的数组。此数组的每一行要么是一个列值的数组,要么是属性对应每个列名的一个对象。

使用此方法获取大结果集将导致系统负担加重且可能占用大量网络资源。与其取回所有数据后用PHP来操作,倒不如考虑使用数据库服务来处理结果集。例如,在取回数据并通过PHP处理前,在 SQL 中使用 WHERE 和 ORDER BY 子句来限定结果。 


 

 

PDOStatement::fetchColumn

说明

PDOStatement::fetchColumn — 从结果集中的下一行返回单独的一列,如果没有了,则返回 FALSE 。 


参数

column_number

你想从行里取回的列的索引数字(以0开始的索引)。如果没有提供值,则 PDOStatement::fetchColumn() 获取第一列。 

返回值

PDOStatement::fetchColumn() 从结果集中的下一行返回单独的一列。

Warning

如果使用 PDOStatement::fetchColumn() 取回数据,则没有办法返回同一行的另外一列。 


PDOStatement::fetchObject

说明

PDOStatement::fetchObject —获取下一行并作为一个对象返回。此函数(方法)是使用 PDO::FETCH_CLASSPDO::FETCH_OBJ 风格的 PDOStatement::fetch() 的一种替代。

参数

class_name

创建类的名称。

ctor_args

此数组的元素被传递给构造函数。 


 

返回值

返回一个属性名对应于列名的所要求类的实例, 或者在失败时返回 FALSE

 

posted @ 2016-04-09 18:12  司会铭  阅读(425)  评论(0编辑  收藏  举报