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递归算法和应用方法介绍
Apr 15 PHP
深入php数据采集的详解
Jun 02 PHP
PHP读取大文件的类SplFileObject使用介绍
Apr 09 PHP
php实现的漂亮分页方法
Apr 17 PHP
PHP防止post重复提交数据的简单例子
Jun 07 PHP
php删除左端与右端空格的方法
Nov 29 PHP
php使用google地图应用实例
Dec 31 PHP
php实现将上传word文件转为html的方法
Jun 03 PHP
php基本函数汇总
Jul 09 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
Jul 31 PHP
php获取网站根目录物理路径的几种方法(推荐)
Mar 04 PHP
php 7新特性之类型申明详解
Jun 06 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
复杂检索数据并分页显示的处理方法
2006/10/09 PHP
APMServ使用说明
2006/10/23 PHP
swfupload 多文件上传实现代码
2008/08/27 PHP
PHP开发者常犯的10个MySQL错误更正剖析
2012/01/30 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
2018/10/12 PHP
js下获取div中的数据的原理分析
2010/04/07 Javascript
JQuery slideshow的一个小问题(如何发现及解决过程)
2013/02/06 Javascript
jQuery实现手机版页面翻页效果的简单实例
2016/10/05 Javascript
微信和qq时间格式模板实例详解
2016/10/21 Javascript
vue父子组件的数据传递示例
2017/03/07 Javascript
jQuery开源组件BootstrapValidator使用详解
2017/06/29 jQuery
Vue底层实现原理总结
2018/02/17 Javascript
详解vue-cli项目中怎么使用mock数据
2018/05/29 Javascript
Vue filter格式化时间戳时间成标准日期格式的方法
2018/09/16 Javascript
深入浅析vue-cli@3.0 使用及配置说明
2019/05/08 Javascript
Python实现递归遍历文件夹并删除文件
2016/04/18 Python
Python实现图片滑动式验证识别方法
2017/11/09 Python
Python 反转字符串(reverse)的方法小结
2018/02/20 Python
Python装饰器的执行过程实例分析
2018/06/04 Python
Python基础之条件控制操作示例【if语句】
2019/03/23 Python
python通过实例讲解反射机制
2019/10/17 Python
Python3 解决读取中文文件txt编码的问题
2019/12/20 Python
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
2014/06/23 HTML / CSS
英国最大的专业户外零售商:Mountain Warehouse
2018/06/06 全球购物
汽车运用工程毕业生自荐信
2013/10/29 职场文书
优秀毕业生求职推荐信范文
2013/11/21 职场文书
中学教师岗位职责
2013/11/26 职场文书
大学生入党思想汇报
2014/01/14 职场文书
英语老师推荐信
2014/02/26 职场文书
幼儿园课题实施方案
2014/05/14 职场文书
模具专业求职信
2014/06/26 职场文书
张家口市高新区党工委群众路线教育实践活动整改方案
2014/10/25 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书
中学教代会开幕词
2016/03/04 职场文书
加薪申请书应该这样写!
2019/07/04 职场文书
python 离散点图画法的实现
2022/04/01 Python