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

发布时间 - 2026-01-10 23:05:51    点击率:

本文实例讲述了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基于pdo操作数据库技巧总结》、《php+Oracle数据库程序设计技巧总结》、《PHP+MongoDB数据库操作技巧大全》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

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


# php  # PDO  # 获取  # 结果集  # php使用pdo连接并查询sql数据库的方法  # PHP5中使用PDO连接数据库的方法  # php pdo操作数据库示例  # php使用PDO事务配合表格读取大量数据插入操作实现方法  # php中PDO方式实现数据库的增删改查  # php使用PDO执行SQL语句的方法分析  # PHP实现PDO的mysql数据库操作类  # php使用PDO从数据库表中读取数据的实现方法(必看)  # 程序设计  # 是一个  # 这是  # 操作技巧  # 都有  # 相关内容  # 遍历  # 感兴趣  # 可以通过  # 给大家  # 可选  # 更多关于  # 类似于  # 所述  # 面向对象  # 则将  # 返回值  # 二进制数  # 偏移量  # 可用于 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在云虚拟主机上快速搭建个人网站?  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  Laravel如何升级到最新版本?(升级指南和步骤)  简单实现Android验证码  Android利用动画实现背景逐渐变暗  如何挑选高效建站主机与优质域名?  Python文件流缓冲机制_IO性能解析【教程】  微信小程序 require机制详解及实例代码  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  Laravel如何实现事件和监听器?(Event & Listener实战)  JavaScript如何操作视频_媒体API怎么控制播放  Android okhttputils现在进度显示实例代码  Linux后台任务运行方法_nohup与&使用技巧【技巧】  Linux网络带宽限制_tc配置实践解析【教程】  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  Laravel如何实现用户密码重置功能?(完整流程代码)  浅谈javascript alert和confirm的美化  再谈Python中的字符串与字符编码(推荐)  iOS发送验证码倒计时应用  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  用v-html解决Vue.js渲染中html标签不被解析的问题  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  如何登录建站主机?访问步骤全解析  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  php json中文编码为null的解决办法  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  网站优化排名时,需要考虑哪些问题呢?  jQuery中的100个技巧汇总  iOS验证手机号的正则表达式  如何用已有域名快速搭建网站?  想要更高端的建设网站,这些原则一定要坚持!  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  如何在景安服务器上快速搭建个人网站?  如何获取上海专业网站定制建站电话?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  香港服务器网站卡顿?如何解决网络延迟与负载问题?  如何快速搭建高效服务器建站系统?  如何在橙子建站中快速调整背景颜色?  jQuery 常见小例汇总  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  EditPlus中的正则表达式 实战(1)  西安专业网站制作公司有哪些,陕西省建行官方网站?  javascript中对象的定义、使用以及对象和原型链操作小结  利用JavaScript实现拖拽改变元素大小  如何用AWS免费套餐快速搭建高效网站?