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免费套餐快速搭建高效网站?

