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&amp;mysql(三)
Oct 09 PHP
array_multisort实现PHP多维数组排序示例讲解
Jan 04 PHP
PHP新手NOTICE错误常见解决方法
Dec 07 PHP
用Json实现PHP与JavaScript间数据交换的方法详解
Jun 20 PHP
php使用百度天气接口示例
Apr 22 PHP
php中get_cfg_var()和ini_get()的用法及区别
Mar 04 PHP
php post大量数据时发现数据丢失问题解决方法
Jun 20 PHP
php统计数组元素个数的方法
Jul 02 PHP
PHP 获取ip地址代码汇总
Jul 05 PHP
php实现简单的MVC框架实例
Sep 23 PHP
php入门教程之Zend Studio设置与开发实例
Sep 09 PHP
laravel框架中控制器的创建和使用方法分析
Nov 23 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
discuz authcode 经典php加密解密函数解析
2020/07/12 PHP
php获取post中的json数据的实现方法
2011/06/08 PHP
ThinkPHP整合百度Ueditor图文教程
2014/10/21 PHP
php邮件发送的两种方式
2020/04/28 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
laravel添加前台跳转成功页面示例
2019/10/22 PHP
JavaScript判断DOM何时加载完毕的技巧
2012/11/11 Javascript
js从10种颜色中随机取色实现每次取出不同的颜色
2013/10/23 Javascript
js实现带按钮的上下滚动效果
2015/05/12 Javascript
Jquery注册事件实现方法
2015/05/18 Javascript
基于jquery实现ajax无刷新评论
2020/08/19 Javascript
解析预加载显示图片艺术
2016/12/05 Javascript
BootStrap表单控件之文本域textarea
2017/05/23 Javascript
vue中遇到的坑之变化检测问题(数组相关)
2017/10/13 Javascript
vue 自定义指令自动获取文本框焦点的方法
2018/08/25 Javascript
微信小程序实现无限滚动列表
2020/05/29 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
浅谈layui分页控件field参数接收对象的问题
2019/09/20 Javascript
js实现百度淘宝搜索功能
2020/02/17 Javascript
[01:29]2014DOTA2展望TI 剑指西雅图DK战队专访
2014/06/30 DOTA
使用Protocol Buffers的C语言拓展提速Python程序的示例
2015/04/16 Python
Python内置函数——__import__ 的使用方法
2017/11/24 Python
jupyter notebook引用from pyecharts.charts import Bar运行报错
2020/04/23 Python
Python代码缩进和测试模块示例详解
2018/05/07 Python
儿童python练习实例
2018/05/27 Python
Python中分支语句与循环语句实例详解
2018/09/13 Python
Pandas过滤dataframe中包含特定字符串的数据方法
2018/11/07 Python
Pycharm以root权限运行脚本的方法
2019/01/19 Python
Python面向对象实现一个对象调用另一个对象操作示例
2019/04/08 Python
Python使用MyQR制作专属动态彩色二维码功能
2019/06/04 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
2020/06/04 Python
css3实现图片遮罩效果鼠标hover以后出现文字
2013/11/05 HTML / CSS
Tessabit日本:集世界奢侈品和设计师品牌的意大利精品买手店
2020/01/07 全球购物
2016元旦晚会主持词
2015/07/01 职场文书
外出学习心得体会范文
2016/01/18 职场文书