十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要介绍“PHP数据库怎么使用PDO获取查询结果”,在日常操作中,相信很多人在PHP数据库怎么使用PDO获取查询结果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP数据库怎么使用PDO获取查询结果”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
十多年的斗门网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整斗门建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“斗门网站设计”,“斗门网站推广”以来,每个客户项目都认真落实执行。
只要成功执行SELECT 查询,就都会有结果集对象生成,不管是使用PDO对象中的qurey()
方法还是使用 prepare()
和 execute()
等方法结合的预处理语句,执行 SELECT 查询都会得到结果集对象 PDOStatement。
通过 PDOStatement 类中的方法就可以获取 SELECT 语句的查询结果,接下来我们就来看一下PDOStatement 类中常见的几个获取结果集数据的方法。
fetch()
方法
fetch()
方法可以从一个 PDOStatement 对象的结果集中获取当前行的内容,并将结果集指针移至下一行,当到达结果集末尾时返回 FALSE,该方法的语法格式如下:
PDOStatement::fetch([int $fetch_style[, int $cursor_orientation = PDO::FETCH_ORI_NEXT[, int $cursor_offset = 0]]])
其中需要注意的是:
$fetch_style
表示可选参数,用来控制下一行如何返回给调用者。其中这个参数的值必须是 PDO::FETCH_*
系列常量中的一个,如下所示:
PDO::FETCH_ASSOC
表示返回一个关联数组;
PDO::FETCH_BOTH
(默认) 表示返回一个索引数组加关联数组混合的数组
PDO::FETCH_BOUND
表示返回 TRUE,并分配结果集中的值给 PDOStatement::bindColumn() 方法绑定的 PHP 变量
PDO::FETCH_OBJ
表示返回一个属性名对应结果集列名的匿名对象。
PDO::FETCH_CLASS
:返回一个请求类的新实例,映射结果集中的列名到类中对应的属性名。
如果 fetch_style
包含 PDO::FETCH_CLASSTYPE
例如:PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE,则类名由第一列的值决定;
$cursor orientation
表示可选参数,用来确定当对象是一个可滚动的游标时应当获取哪一行。此值必须是 PDO::FETCH_ORI_* 系列常量中的一个,默认为 PDO::FETCH_ORI_NEXT。
$offset
表示可选参数,当参数 $cursor_orientation 设置为 PDO::FETCH_ORI_ABS
时,此值指定结果集中想要获取行的绝对行号;当参数 $cursor_orientation 设置为 PDO::FETCH_ORI_REL
时,此值指定想要获取行相对于调用 PDOStatement::fetch() 前游标的位置。
接下来我们通过示例来看一下使用 fetch() 方法,获取 SELECT 语句的查询结果。示例如下:
query($sql); echo ''; while ($row = $res -> fetch(PDO::FETCH_ASSOC)){ print_r($row); } }catch(PDOException $e){ echo '数据库连接失败:'.$e -> getMessage(); } ?>输出结果:
由此我们便通过fetch() 方法完成了从一个 PDOStatement 对象的结果集中获取当前行的内容。
$offset
表示可选参数,当参数$cursor_orientation
设置为PDO::FETCH_ORI_ABS
时,此值指定结果集中想要获取行的绝对行号;当参数$cursor_orientation
设置为PDO::FETCH_ORI_REL
时,此值指定想要获取行相对于调用PDOStatement::fetch()
前游标的位置。接下来我们看一下fetchAll() 方法的应用。
fetchAll()
方法
fetchAll()
方法与上面介绍的 fetch() 方法类似,但是该方法只需要调用一次就可以获取结果集中的所有行,并赋给返回的数组。该方法的语法格式如下:PDOStatement::fetchAll([int $fetch_style[, mixed $fetch_argument[, array $ctor_args = array()]]])其中需要注意的是:
$fetch_style
表示可选参数,用来控制返回数组的内容,默认值为 PDO::FETCH_BOTH。该参数的取值与 fetch() 方法相同
$fetch_argument
根据 $fetch_style 参数的值,此参数有不同的意义:
PDO::FETCH_COLUMN
:返回指定以 0 开始索引的列;
PDO::FETCH_CLASS
:返回指定类的实例,映射每行的列到类中对应的属性名;
PDO::FETCH_FUNC
:将每行的列作为参数传递给指定的函数,并返回调用函数后的结果。
$ctor_args
表示当 $fetch_style 参数为 PDO::FETCH_CLASS
时,自定义类的构造函数的参数。
接下来我们通过示例来看一下fetchAll() 方法的实际应用,示例如下:
query($sql); $data = $res -> fetchAll(PDO::FETCH_ASSOC); echo ''; print_r($data); }catch(PDOException $e){ echo '数据库连接失败:'.$e -> getMessage(); } ?>输出结果:
由此我们便通过使用 fetchAll() 方法,获取 SELECT 语句的查询结果。
$ctor_args
表示当$fetch_style
参数为PDO::FETCH_CLASS
时,自定义类的构造函数的参数。接下来我们看一下fetchColumn() 方法的使用。
fetchColumn()
方法
fetchColumn()
方法可以获取结果集中当前行指定字段的值,其语法格式如下:PDOStatement::fetchColumn([int $column_number = 0])其中需要注意的是:
参数
$column_number
表示的是想从行里取回的列的索引数字。如果该参数没有取值,也就是如果没有提供值,那么则会从第一列开始获取。
接下来我们通过示例来看一下fetchColumn() 方法的使用,示例如下:
query($sql); echo '当前行第一列的值为:'.$res -> fetchColumn().'
'; echo '当前行第三列的值为:'.$res -> fetchColumn(2).'
'; echo '当前行第二列的值为:'.$res -> fetchColumn(1).'
'; }catch(PDOException $e){ echo '数据库连接失败:'.$e -> getMessage(); } ?>输出结果:
由此我们便通过使用 fetchColumn() 方法,获取指定字段的值。
到此,关于“PHP数据库怎么使用PDO获取查询结果”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!
分享名称:PHP数据库怎么使用PDO获取查询结果
网址分享:http://6mz.cn/article/gojgpp.html