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

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

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

PDO->query()

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

语法:

  1. PDO->query()

  2.  
  3. PDO->query() 用于查询数据记录并返回查询结果。
  4.  
  5. 语法:
  6. PDO->query( string statement ) 
  7. 例子:

  8. <?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; ?> 
  9. 在上面的例子中,我们仿照 MySQL 教程章节的查询例子,用 PDO 的方式对 user 表进行查询操作。

  10. PDOStatement->fetch()

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

  12. 语法:

  13. PDOStatement->fetch(int mode) 
  14. mode 为可选参数,表示希望返回的结果集类型,默认为关联及数字索引共有的数组形式。

  15. mode 参数可取值如下:
  16. 取值
  17. 说明
  18. PDO::FETCH_ASSOC
  19. 关联索引(字段名)数组形式
  20. PDO::FETCH_NUM
  21. 数字索引数组形式
  22. PDO::FETCH_BOTH
  23. 默认,关联及数字索引数组形式都有
  24. PDO::FETCH_OBJ
  25. 按照对象的形式
  26. PDO::FETCH_BOUND
  27. 通过 bindColumn() 方法将列的值赋到变量上
  28. PDO::FETCH_CLASS
  29. 以类的形式返回结果集,如果指定的类属性不存在,会自动创建
  30. PDO::FETCH_INTO
  31. 将数据合并入一个存在的类中进行返回
  32. PDO::FETCH_LAZY
  33. 结合了 PDO::FETCH_BOTHPDO::FETCH_OBJ,在它们被调用时创建对象变量
  34.  
  35. PDOStatement->setFetchMode()

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

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

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

  40. 语法:

  41. PDOStatement->fetchAll([int mode [,int column_index]]) 
  42. mode 为可选参数,表示希望返回的数组,column_index 表示列索引序号,当 mode 取值 PDO::FETCH_COLUMN 时指定。

  43. mode 参数可取值如下:
  44. 取值
  45. 说明
  46. PDO::FETCH_COLUMN
  47. 指定返回返回结果集中的某一列,具体列索引由 column_index 参数指定
  48. PDO::FETCH_UNIQUE
  49. 以首个键值下表,后面数字下表的形式返回结果集
  50. PDO::FETCH_GROUP
  51. 按指定列的值分组
  52.  
  53. 例子:

  54. $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); 
  55. PDO->query( string statement )

例子:

  1. <?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() ,不同的是该方法不仅返回数组,还可返回对象。

语法:

  1. 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() 方法设定,如:

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

PDOStatement->fetchAll()

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

语法:

  1. 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 按指定列的值分组

例子:

  1. $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);
  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. BeanFactory 和 ApplicationContext

    Spring通过一个配置文件描述Bean及Bean直接的依赖关系,利用Java语言的反射功能实例化Bean并建立Bean之间的依赖关系.Sprig的IoC容器在完成这些底层工作的基础上,还提供了Bea ...

  2. 自定义View(5)Paint常用的一些绘制滤镜,特效等介绍

    Shader 返回绘图过程中重复色块的基类 相关方法:Paint::setShader(Shader shader) BitmapShader 从位图加载重复色块 LinearGradient, Ra ...

  3. Ext2.0之Tabpanel AJAX远程加载多标签页面模式开发技巧

    目前开发的方式是采用远程load页面来实现多页面效果,类似于126邮箱多标签页效果.但是比126邮箱的方式更好,因为页面打开后是load到本地的,126似乎还会重新请求.在近期项目该开发方式已经基本成 ...

  4. firebug的使用方法和技巧(web开发调试工具)

    Firebug是firefox下的一个插件,能够调试所有网站语言,如Html,Css等,但FireBug最吸引我的就是javascript调试功 能,使用起来非常方便,而且在各种浏览器下都能使用(IE ...

  5. poj 3101 Astronomy (java 分数的最小公倍数 gcd)

    题目链接 要用大数,看了别人的博客,用java写的. 题意:求n个运动周期不完全相同的天体在一条直线上的周期. 分析:两个星球周期为a,b.则相差半周的长度为a*b/(2*abs(a-b)),对于n个 ...

  6. source insight快捷键及使用技巧

      source insight快捷键及使用技巧 退出程序                             : Alt+F4 重画屏幕                             ...

  7. error while loading shared libraries: libevent-2.0.so.5解决办法

    安装memcache时,需要建立文件索引或者说文件连接(link),类似windows下的快捷方式 启动服务时出现 error while loading shared libraries: libe ...

  8. dict 字典

    Python 学习笔记[dict的操作方法] Python中dict详解

  9. apache开源项目 --Struts

    struts简介 Struts是Apache软件基金会(ASF)赞助的一个开源项目.它最初是jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目.它通过采用JavaServlet/ ...

  10. 省常中模拟 Test4

    prime 数论 题意:分别求 1*n.2*n.3*n.... n*n 关于模 p 的逆元.p 是质数,n < p. 初步解法:暴力枚举.因为 a 关于模 p 的逆元 b 满足 ab mod p ...