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

本文实例讲述了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()方法完成数据的循环输出
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
$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
2
3
|
1 107lab e10adc3949ba59abbe56e057f20f883e4 admin 1234565 admin 123456 |
fetchAll()方法
fetchAll()方法用于获取结果集中的所有行,其返回值是一个包含结果集中所有数据的二进制数组。语法如下:
array PDOStatement::fetchAll([int fetch_style[,int column_index]])
参数说明:
fetch_style:控制结果集中数据的显示方式。
column_index: 字段的索引。
例如:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
$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>');} |
运行结果为:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
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来遍历这个二维数组
|
1
2
3
|
foreach($result as $val){echo $val['username'].'<br>';} |
运行结果为:
|
1
2
3
|
107labadminadmin |
fetchColumn()方法
fetchColumn()方法获取结果集中下一行指定列的值,语法如下:
string PDOStatement::fetchColumn([int column_number])
可选参数column_number设置行中列的索引值,该值从0开始。如果省略该参数则将从第1列开始取值
例如:
通过fetchColumn()方法获取结果集中下一行中指定列的值。(或第一列id的值)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
$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
2
3
|
145 |
php使用PDO获取结果集的方法的更多相关文章
- PHP PDO获取结果集
一.介绍PDO获取结果集,不得不介绍一下PDO是如果执行SQL语句,一般情况下分三种, 1.query()方法 query()方法通常用于返回执行查询后的结果集.语法是这样的:PDOStatement ...
- PDO获取数据的方法fetch()、fetchAll()、setFetchMode()、bindColumn()
PDO的数据获取方法与其他数据库扩展都非常类似,只要成功执行SELECT查询,都会有结果集对象产生.不管是使用PDO对象中的query()方法,还是使用prepare()和execute()等方法结合 ...
- PDO中获取结果集
fetch()方法 fetch()方法用于获取结果集的下一行.语法例如以下: mixed PDOStatement::fetch([int fetch_style][,int cursor_orien ...
- C#处理MySql多个返回集的方法
本文实例讲述了C#处理MySql多个返回集的方法.分享给大家供大家参考.具体方法如下: 关于Mysql返回多个集java和Php的较多,但是C#的完整代码好像没见过,研究了一下做个封装以后用 做一个M ...
- [No00006F]总结C#获取当前路径的各种方法
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- VMware桥接模式无法自动化获取IP的解决方法
虚拟机桥接无法自动获取IP的解决方法 在虚拟机VM里面装了centos系统,网卡选用桥接方式. 刚开始的时候还能自动获取到IP地址,突然有一天IP消失了,再怎么重启都无法获取IP地址.因为之前是可以获 ...
- C#的path.GetFullPath 获取上级目录实现方法
这篇文章主要介绍了C#的path.GetFullPath 获取上级目录实现方法,包含了具体的C#实现方法以及ASP.net与ASP等的方法对比,非常具有实用价值,需要的朋友可以参考下 本文实例讲述 ...
- 多浏览器兼容用javascript获取url参数的方法比较推荐的一种
多浏览器兼容用javascript获取url参数的方法比较推荐的一种 <script language = javascript> function request(paras){ var ...
- 使用jquery获取url以及jquery获取url参数的方法
使用jquery获取url以及使用jquery获取url参数是我们经常要用到的操作 1.jquery获取url很简单,代码如下 1.window.location.href; 其实只是用到了javas ...
- Spring3 MVC请求参数获取的几种方法
Spring3 MVC请求参数获取的几种方法 一. 通过@PathVariabl获取路径中的参数 @RequestMapping(value="user/{id}/{name}&q ...
随机推荐
- beanshell报错:Error invoking bsh method: eval解决办法(beanshell 不支持Java中的泛型)
起因:在beanshell中读取CSV文件中的内容,相同的代码在IDEA中可以执行通过,但是在beanshell中报错: ERROR o.a.j.u.BeanShellInterpreter: Err ...
- Halo 主题 Redemption 首发版
Redemption 一款专注阅读.写作的 Halo 博客主题.主要设计思想即是专注阅读.写作,是一款极简类型的博客主题. Redemption 部分设计灵感借鉴 Halo 博客 Zozo 主题,感谢 ...
- C++编程笔记(智能指针学习)
目录 scoped_ptr unique_ptr shared_ptr 智能指针简单应用 智能指针简单应用 scoped_ptr 拷贝构造和 =赋值操作均为私有,不允许 内部重载了解引用(*)操作符和 ...
- pycharm全局搜索
方法有:1.使用[Ctrl+N]快捷键按文件名搜索py文件: 2.使用[Ctrl+shift+N]快捷键按文件名搜索所有类型的文件: 3.使用[ctrl+shift+f]快捷全局字符串搜索: 3.使用 ...
- 解决MVVMLight导航VM不重置问题
问题阐述:使用MVVMLight导航发现导航后VM里面的数据并未进行重置,需要界面跳转后,历史VM也进行销毁重置,并释放 解决办法: 方法一:在当前界面进行Unloaded进行VM注销并进行重新注入代 ...
- C++进阶(哈希)
vector容器补充(下面会用到) 我们都知道vector容器不同于数组,能够进行动态扩容,其底层原理:所谓动态扩容,并不是在原空间之后接续新空间,因为无法保证原空间之后尚有可配置的空间.而是以原大小 ...
- 本机无法配置远程服务器上的MySQL ODBC连接驱动
1.问题描述 我想要访问远程windows服务器上的MySQL数据库,因此需要在本地ODBC驱动上配好远程服务器的MySQL.但配置好基本信息后,测试的时候出现如下问题: 2.解决方法 之所以产生这种 ...
- (3)go-micro微服务项目搭建
目录 一 微服务项目介绍 二 go-micro安装 1.拉取micro镜像 2.生成项目目录 三 项目搭建 使用DDD模式开发项目: 四 最后 一 微服务项目介绍 账户功能是每一个系统都绕不开的一部分 ...
- JavaScript 中URL 查询字符串(query string)的序列与反序列化
方法一: 在 JavaScript 中,可以使用 URLSearchParams 对象来处理 URL 中的查询字符串. 序列化(将 JavaScript 对象转换为查询字符串)可以使用 URLSear ...
- [cocos2d-x]用getContentSize()返回的值用CCLOG打印必须用%f
今天写代码,又遇到了一个bug,开始还以为是我自己哪写错了,没想到竟然在这里出错? 而width和height的类型是float类型,为什么必须用%d打印?接着我查看了一下源码: 如果没理解错的话,C ...