定义:PDO(PHP Data Object)是PHP5才支持的扩展,它为PHP访问各种数据库定义了一个轻量级的、一致性的接口。

PDO是PHP5中的一个重大功能,PHP6中将只默认使用PDO来处理数据库。而我们将通过PDO来统一对各种数据库执行查询和获取数据等操作 

PHP PDO->query() 查询数据记录并返回查询结果

PDO->query()

PDO->query() 用于查询数据记录并返回查询结果。

语法:

PDO->query()

PDO->query() 用于查询数据记录并返回查询结果。 语法:
PDO->query( string statement ) 

例子:

<?php //构造PDO连接 $dbh = "mysql:host=localhost;dbname=test"; $db = new PDO($dbh, 'root', 'root123'); $db->query("set character set 'gbk'");  //查询数据 $sql = "SELECT * FROM user"; $sth = $db->query($sql); while($row = $sth->fetch()){     echo "用户名:".$row['username']."<br />";     echo "电子邮件:".$row['email']."<br />";     echo "注册日期:".date("Y-m-d", $row['regdate'])."<br /><br />"; } $db = null; ?> 

在上面的例子中,我们仿照 MySQL 教程章节的查询例子,用 PDO 的方式对 user 表进行查询操作。

PDOStatement->fetch()

PDO 中的 fetch() 方法用于从结果集中获取一行结果,该方法行为类似 mysql_fetch_array() ,不同的是该方法不仅返回数组,还可返回对象。

语法:

PDOStatement->fetch(int mode) 

mode 为可选参数,表示希望返回的结果集类型,默认为关联及数字索引共有的数组形式。

mode 参数可取值如下:
取值 说明
PDO::FETCH_ASSOC 关联索引(字段名)数组形式
PDO::FETCH_NUM 数字索引数组形式
PDO::FETCH_BOTH 默认,关联及数字索引数组形式都有
PDO::FETCH_OBJ 按照对象的形式
PDO::FETCH_BOUND 通过 bindColumn() 方法将列的值赋到变量上
PDO::FETCH_CLASS 以类的形式返回结果集,如果指定的类属性不存在,会自动创建
PDO::FETCH_INTO 将数据合并入一个存在的类中进行返回
PDO::FETCH_LAZY 结合了 PDO::FETCH_BOTH、PDO::FETCH_OBJ,在它们被调用时创建对象变量

PDOStatement->setFetchMode()

如果不在 fetch() 中指定返回的结果类型,也可以单独使用 setFetchMode() 方法设定,如:

...... $sth = $db->query($sql); $sth->setFetchMode(PDO::FETCH_ASSOC); while($row = $result->fetch()){     ...... } 

PDOStatement->fetchAll()

fetchAll() 方法用于把数据从数据集一次性取出并放入数组中。

语法:

PDOStatement->fetchAll([int mode [,int column_index]]) 

mode 为可选参数,表示希望返回的数组,column_index 表示列索引序号,当 mode 取值 PDO::FETCH_COLUMN 时指定。

mode 参数可取值如下:
取值 说明
PDO::FETCH_COLUMN 指定返回返回结果集中的某一列,具体列索引由 column_index 参数指定
PDO::FETCH_UNIQUE 以首个键值下表,后面数字下表的形式返回结果集
PDO::FETCH_GROUP 按指定列的值分组

例子:

$sth = $db->query($sql); $row = $sth->fetchAll();  //只返回 username(index=1) $row = $sth->fetchAll(PDO::FETCH_COLUMN, 1);  //将 username GROUP 返回(注:由于表中 username 无重复记录,因此本例无意义) $row = $sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP, 1); 

PDO->query( string statement )

例子:

<?php //构造PDO连接 $dbh = \"mysql:host=localhost;dbname=test\"; $db = new PDO($dbh, \'root\', \'root123\'); $db->query(\"set character set \'gbk\'\");  //查询数据 $sql = \"SELECT * FROM user\"; $sth = $db->query($sql); while($row = $sth->fetch()){     echo \"用户名:\".$row\[\'username\'\].\"<br />\";     echo \"电子邮件:\".$row\[\'email\'\].\"<br />\";     echo \"注册日期:\".date(\"Y-m-d\", $row\[\'regdate\'\]).\"<br /><br />\"; } $db = null; ?> 

在上面的例子中,我们仿照 MySQL 教程章节的查询例子,用 PDO 的方式对 user 表进行查询操作。

PDOStatement->fetch()

PDO 中的 fetch() 方法用于从结果集中获取一行结果,该方法行为类似 mysql_fetch_array() ,不同的是该方法不仅返回数组,还可返回对象。

语法:

PDOStatement->fetch(int mode) 

mode 为可选参数,表示希望返回的结果集类型,默认为关联及数字索引共有的数组形式。

mode 参数可取值如下:
取值 说明
PDO::FETCH_ASSOC 关联索引(字段名)数组形式
PDO::FETCH_NUM 数字索引数组形式
PDO::FETCH_BOTH 默认,关联及数字索引数组形式都有
PDO::FETCH_OBJ 按照对象的形式
PDO::FETCH_BOUND 通过 bindColumn() 方法将列的值赋到变量上
PDO::FETCH_CLASS 以类的形式返回结果集,如果指定的类属性不存在,会自动创建
PDO::FETCH_INTO 将数据合并入一个存在的类中进行返回
PDO::FETCH_LAZY 结合了 PDO::FETCH_BOTH、PDO::FETCH_OBJ,在它们被调用时创建对象变量

PDOStatement->setFetchMode()

如果不在 fetch() 中指定返回的结果类型,也可以单独使用 setFetchMode() 方法设定,如:

...... $sth = $db->query($sql); $sth->setFetchMode(PDO::FETCH_ASSOC); while($row = $result->fetch()){     ...... } 

PDOStatement->fetchAll()

fetchAll() 方法用于把数据从数据集一次性取出并放入数组中。

语法:

PDOStatement->fetchAll(\[int mode \[,int column_index\]\]) 

mode 为可选参数,表示希望返回的数组,column_index 表示列索引序号,当 mode 取值 PDO::FETCH_COLUMN 时指定。

mode 参数可取值如下:
取值 说明
PDO::FETCH_COLUMN 指定返回返回结果集中的某一列,具体列索引由 column_index 参数指定
PDO::FETCH_UNIQUE 以首个键值下表,后面数字下表的形式返回结果集
PDO::FETCH_GROUP 按指定列的值分组

例子:

$sth = $db->query($sql); $row = $sth->fetchAll();  //只返回 username(index=1) $row = $sth->fetchAll(PDO::FETCH_COLUMN, 1);  //将 username GROUP 返回(注:由于表中 username 无重复记录,因此本例无意义) $row = $sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP, 1); 
												

php pdo的更多相关文章

  1. 比Mysqli操作数据库更简便的方式 。PDO

    下面来说一下PDO 先画一张图来了解一下 mysqli是针对mysql这个数据库扩展的一个类 PDO是为了能访问更多数据库 如果出现程序需要访问其他数据库的话就可以用PDO来做 PDO数据访问抽象层1 ...

  2. pdo的使用

    PHP 数据对象 (PDO) 扩展为PHP访问数据库定义了一个轻量级的一致接口. PDO 提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据. PDO随 ...

  3. PHP中PDO事务的使用方法

    事务 (Transaction) 是操作数据库中很重要的一个功能, 它可以让你预定一条, 或者一系列 SQL 语句, 然后一起执行. 在执行的过程中, 如果其中的某条执行失败, 可以回滚所有已更改的操 ...

  4. PDO连接mysql数据库

    1.PDO简介 PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接 ...

  5. PDO概念 分析 练习

    PDO 翻译过来叫做数据访问抽象层 它是一个数据访问的层面,实际上是一个类,也就是说所有操作数据库的代码,都是通过这个层面完成的 该图好理解大概就是这样一种模式 现在考虑的是能不能使用同一个类,上层代 ...

  6. PDO

    'PDO'是数据访问抽象层'用mysqli类找到mysqli驱动根据驱动操作mysqli数据库'其他类找到sqlserver驱动根据驱动操作sqlserve数据库'PDO 访问其他数据库 PDO的用法 ...

  7. 前端学PHP之PDO预处理语句

    × 目录 [1]定义 [2]准备语句 [3]绑定参数[4]执行查询[5]获取数据[6]大数据对象 前面的话 本来要把预处理语句和前面的基础操作写成一篇的.但是,由于博客园的限制,可能是因为长度超出,保 ...

  8. 前端学PHP之PDO基础操作

    × 目录 [1]创建PDO [2]使用PDO [3]事务处理 前面的话 PDO(php data object)扩展类库为php访问数据库定义了轻量级的.一致性的接口,它提供了一个数据库访问抽象层,这 ...

  9. CANopen学习——PDO

    查找资料时,发现一个很好的博客,博主剖析的通俗易懂 http://www.cnblogs.com/winshton/p/4897556.html   PDO定义: 过程数据对象,用来传输实时数据.因为 ...

  10. PHP基础之PDO

    简介 PDO(PHP Data Object)是指PHP数据对象,它定义了一个轻量级的一致接口来统一操作各种数据库.PDO提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方 ...

随机推荐

  1. 利用PC创建一个无线接入点

    win7 创建虚拟接入点,修改接入点名称和密码,然后存为bat文件,以管理员模式运行 netsh wlan set hostednetwork mode=allow ssid=APName key=p ...

  2. HDU 4604 deque 最长上升子序列

    枚举每个位置,求以num[i]为起点的最长不下降子序列和以num[i]为结尾的最长不递增子序列. 并且把相同值的个数统计一下,最后要减去算重复了的. 比如: 1 9 4 4 2 2 2 3 3 3 7 ...

  3. android移植

    root@phone-desktop:/opt/4418-source/android4.4.2_r1# ./device/nexell/tools/build.sh -b drone2 -t u-b ...

  4. Android Touch事件分发机制

    参考:http://blog.csdn.net/xiaanming/article/details/21696315 参考:http://blog.csdn.net/wangjinyu501/arti ...

  5. [Codeforces137C]History(排序,水题)

    题目链接:http://codeforces.com/contest/137/problem/C 题意:给n对数,分别是一个事件的起始和终止时间.问被有几个事件被其他事件包含. 思路:先排序,按照起始 ...

  6. C结构体之位域(位段)

    C结构体之位域(位段) 有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位.例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可.为了节省存储空间,并使处理简便,C ...

  7. Linux查看所有用户用什么命令

    用过Linux系统的人都知道,Linux系统查看用户不是会Windows那样,鼠标右键看我的电脑属性,然后看计算机用户和组即可. 那么Linux操作系统里查看所有用户该怎么办呢?用命令.其实用命令就能 ...

  8. 基于XMPP的即时通信系统的建立(三)— 程序设计概览

    XMPP与HTTP的比较 XMPP的优势 Ÿ   1. 推送数据 HTTP只能从服务器哪里请求数据,除非服务器正在响应客户端请求,否则不能向客户端发送数据.但XMPP连接是双向的,任何一方在任何时候都 ...

  9. 页面多个Jquery版本共存的冲突问题,解决方法!

    示例如下: <script type="text/javascript" src="jquery.js"></script> <s ...

  10. 任E行M1端口比特率特征码

    分辨率:800x480gps端口:com1比特率:4800设备特征码:01D1D008内存:128M