php使用PDO获取结果集的方法


Posted in PHP onFebruary 16, 2017

本文实例讲述了php使用PDO获取结果集的方法。分享给大家供大家参考,具体如下:

fetch()方法

fetch()方法用于获取结果集的下一行,语法如下:

mixed PDOStatement::fetch([int fetch_style][,int cursor_orientation[,int cursor_offset]]])

参数fetch_style控制结果集的返回方式

PDO::FETCH_ASSOC -- 关联数组形式
PDO::FETCH_NUM -- 数字索引数组形式
PDO::FETCH_BOTH -- 两者数组形式都有,这是缺省的
PDO::FETCH_OBJ -- 按照对象的形式,类似于以前的 mysql_fetch_object()
PDO::FETCH_BOUND--以布尔值的形式返回结果,同时获取的列值赋给bindParam()方法中的指定变量。
PDO::FETCH_LAZY--以关联数组、数字索引数组和对象3种形式返回结果

cursor_orientation:PDOStatement对象的一个滚动游标,可用于获取指定的一行。
cursor_offset: 游标的偏移量

例如:

在PDO中通过预处理语句prepare()和execute()执行SQL查询语句,并且应用while()语句和fetch()方法完成数据的循环输出

$dbms='mysql';//数据库类型
$dbName='admin';//使用的数据库
$user='root';//数据库连接用户名
$pwd='password';//数据库连接密码
$host='localhost';//数据库主机名
$dsn="$dbms:host=$host;port=3306;dbname=$dbName";
try{
$pdo=new PDO($dsn,$user,$pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo
$query="select * from user";//需要执行的sql语句
$res=$pdo->prepare($query);//准备查询语句
$res->execute();
while($result=$res->fetch(PDO::FETCH_ASSOC)){
echo $result['id']." ".$result['username']." ".$result['password'].'<br>';
  }
}catch(Exception $e){
die("Error!:".$e->getMessage().'<br>');
}

运行结果为:

1 107lab e10adc3949ba59abbe56e057f20f883e
4 admin 123456
5 admin 123456

fetchAll()方法

fetchAll()方法用于获取结果集中的所有行,其返回值是一个包含结果集中所有数据的二进制数组。语法如下:

array PDOStatement::fetchAll([int fetch_style[,int column_index]])

参数说明:

fetch_style:控制结果集中数据的显示方式。
column_index: 字段的索引。

例如:

$dbms='mysql';//数据库类型
$dbName='admin';//使用的数据库
$user='root';//数据库连接用户名
$pwd='password';//数据库连接密码
$host='localhost';//数据库主机名
$dsn="$dbms:host=$host;port=3306;dbname=$dbName";
try{
$pdo=new PDO($dsn,$user,$pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo
$query="select * from user";//需要执行的sql语句
$res=$pdo->prepare($query);//准备查询语句
$res->execute();
$result=$res->fetchAll(PDO::FETCH_ASSOC);
print_r($result);
}catch(Exception $e){
die("Error!:".$e->getMessage().'<br>');
}

运行结果为: 

Array
(
  [0] => Array
    (
      [id] => 1
      [username] => 107lab
      [password] => e10adc3949ba59abbe56e057f20f883e
    )
  [1] => Array
    (
      [id] => 4
      [username] => admin
      [password] => 123456
    )
  [2] => Array
    (
      [id] => 5
      [username] => admin
      [password] => 123456
    )
)

此时可以通过foreach来遍历这个二维数组

foreach($result as $val){
echo $val['username'].'<br>';
}

运行结果为:

107lab
admin
admin

fetchColumn()方法

fetchColumn()方法获取结果集中下一行指定列的值,语法如下:

string PDOStatement::fetchColumn([int column_number])

可选参数column_number设置行中列的索引值,该值从0开始。如果省略该参数则将从第1列开始取值

例如:

通过fetchColumn()方法获取结果集中下一行中指定列的值。(或第一列id的值)

$dbms='mysql';//数据库类型
$dbName='admin';//使用的数据库
$user='root';//数据库连接用户名
$pwd='password';//数据库连接密码
$host='localhost';//数据库主机名
$dsn="$dbms:host=$host;port=3306;dbname=$dbName";
try{
  $pdo=new PDO($dsn,$user,$pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo
  $query="select * from user";//需要执行的sql语句
  $res=$pdo->prepare($query);//准备查询语句
  $res->execute();
  echo $res->fetchColumn(0).'<br>';
  echo $res->fetchColumn(0).'<br>';
  echo $res->fetchColumn(0).'<br>';
}catch(Exception $e){
  die("Error!:".$e->getMessage().'<br>');
}

运行结果为:

1
4
5

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
使用PHP维护文件系统
Oct 09 PHP
第4章 数据处理-php正则表达式-郑阿奇(续)
Jul 04 PHP
用来解析.htgroup文件的PHP类
Sep 05 PHP
PHP中mysqli_affected_rows作用行数返回值分析
Dec 26 PHP
php实现源代码加密的方法
Jul 11 PHP
twig里使用js变量的方法
Feb 05 PHP
php 生成Tab键或逗号分隔的CSV
Sep 24 PHP
PHP云打印类完整示例
Oct 15 PHP
PHP使用new StdClass()创建空对象的方法分析
Jun 06 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
May 21 PHP
php利用array_search与array_column实现二维数组查找
Jul 08 PHP
redirect_uri参数错误的解决方法(必看)
Feb 16 #PHP
php实现PDO中捕获SQL语句错误的方法
Feb 16 #PHP
php中的单引号、双引号和转义字符详解
Feb 16 #PHP
php输出图像的方法实例分析
Feb 16 #PHP
替换php字符串中的单引号为双引号的方法
Feb 16 #PHP
php中照片旋转 (orientation) 问题的正确处理
Feb 16 #PHP
php使用PDO事务配合表格读取大量数据插入操作实现方法
Feb 16 #PHP
You might like
分页显示Oracle数据库记录的类之一
2006/10/09 PHP
自己前几天写的无限分类类
2007/02/14 PHP
一致性哈希算法以及其PHP实现详细解析
2013/08/24 PHP
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
2014/01/19 PHP
php批量删除操作代码分享
2017/02/26 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
2019/10/03 PHP
js获取单选按钮的数据
2006/11/27 Javascript
Js基础学习资料
2010/11/23 Javascript
Javascript 函数parseInt()转换时出现bug问题
2014/05/20 Javascript
JS实现仿京东淘宝竖排二级导航
2014/12/08 Javascript
jquery动画效果学习笔记(8种效果)
2015/11/13 Javascript
轻松理解Javascript变量的相关问题
2017/01/20 Javascript
jQuery事件与动画基础详解
2017/02/23 Javascript
详解vue模拟加载更多功能(数据追加)
2017/06/23 Javascript
angular4自定义组件详解
2017/09/28 Javascript
微信小程序swiper组件用法实例分析【附源码下载】
2017/12/07 Javascript
vue js秒转天数小时分钟秒的实例代码
2018/08/08 Javascript
解决Angular2 router.navigate刷新页面的问题
2018/08/31 Javascript
JS实现深度优先搜索求解两点间最短路径
2019/01/17 Javascript
React实现类似淘宝tab居中切换效果的示例代码
2020/06/02 Javascript
HTML元素拖拽功能实现的完整实例
2020/12/04 Javascript
[31:01]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS Orenda
2014/05/23 DOTA
Python win32com 操作Exce的l简单方法(必看)
2017/05/25 Python
python自动发微信监控报警
2019/09/06 Python
用python的turtle模块实现给女票画个小心心
2019/11/23 Python
在python3中实现查找数组中最接近与某值的元素操作
2020/02/29 Python
css3新单位vw、vh的使用教程
2018/03/23 HTML / CSS
html5跳转小程序wx-open-launch-weapp踩坑
2020/12/02 HTML / CSS
de Bijenkorf比利时官网:荷兰最知名的百货商店
2017/06/29 全球购物
syb养殖创业计划书
2014/01/09 职场文书
全陪导游欢迎词
2014/01/17 职场文书
财务信息服务专业自荐书范文
2014/02/08 职场文书
班长竞选演讲稿
2014/04/24 职场文书
化工专业自荐书
2014/06/16 职场文书
公共艺术专业自荐信
2014/09/01 职场文书
怎么禁用Win11输入法 最新Win11输入法关闭教程
2022/08/05 数码科技