php pdo
定义: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 为可选参数,表示希望返回的结果集类型,默认为关联及数字索引共有的数组形式。
取值 | 说明 |
---|---|
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 时指定。
取值 | 说明 |
---|---|
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的更多相关文章
- 比Mysqli操作数据库更简便的方式 。PDO
下面来说一下PDO 先画一张图来了解一下 mysqli是针对mysql这个数据库扩展的一个类 PDO是为了能访问更多数据库 如果出现程序需要访问其他数据库的话就可以用PDO来做 PDO数据访问抽象层1 ...
- pdo的使用
PHP 数据对象 (PDO) 扩展为PHP访问数据库定义了一个轻量级的一致接口. PDO 提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据. PDO随 ...
- PHP中PDO事务的使用方法
事务 (Transaction) 是操作数据库中很重要的一个功能, 它可以让你预定一条, 或者一系列 SQL 语句, 然后一起执行. 在执行的过程中, 如果其中的某条执行失败, 可以回滚所有已更改的操 ...
- PDO连接mysql数据库
1.PDO简介 PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接 ...
- PDO概念 分析 练习
PDO 翻译过来叫做数据访问抽象层 它是一个数据访问的层面,实际上是一个类,也就是说所有操作数据库的代码,都是通过这个层面完成的 该图好理解大概就是这样一种模式 现在考虑的是能不能使用同一个类,上层代 ...
- PDO
'PDO'是数据访问抽象层'用mysqli类找到mysqli驱动根据驱动操作mysqli数据库'其他类找到sqlserver驱动根据驱动操作sqlserve数据库'PDO 访问其他数据库 PDO的用法 ...
- 前端学PHP之PDO预处理语句
× 目录 [1]定义 [2]准备语句 [3]绑定参数[4]执行查询[5]获取数据[6]大数据对象 前面的话 本来要把预处理语句和前面的基础操作写成一篇的.但是,由于博客园的限制,可能是因为长度超出,保 ...
- 前端学PHP之PDO基础操作
× 目录 [1]创建PDO [2]使用PDO [3]事务处理 前面的话 PDO(php data object)扩展类库为php访问数据库定义了轻量级的.一致性的接口,它提供了一个数据库访问抽象层,这 ...
- CANopen学习——PDO
查找资料时,发现一个很好的博客,博主剖析的通俗易懂 http://www.cnblogs.com/winshton/p/4897556.html PDO定义: 过程数据对象,用来传输实时数据.因为 ...
- PHP基础之PDO
简介 PDO(PHP Data Object)是指PHP数据对象,它定义了一个轻量级的一致接口来统一操作各种数据库.PDO提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方 ...
随机推荐
- BeanFactory 和 ApplicationContext
Spring通过一个配置文件描述Bean及Bean直接的依赖关系,利用Java语言的反射功能实例化Bean并建立Bean之间的依赖关系.Sprig的IoC容器在完成这些底层工作的基础上,还提供了Bea ...
- 自定义View(5)Paint常用的一些绘制滤镜,特效等介绍
Shader 返回绘图过程中重复色块的基类 相关方法:Paint::setShader(Shader shader) BitmapShader 从位图加载重复色块 LinearGradient, Ra ...
- Ext2.0之Tabpanel AJAX远程加载多标签页面模式开发技巧
目前开发的方式是采用远程load页面来实现多页面效果,类似于126邮箱多标签页效果.但是比126邮箱的方式更好,因为页面打开后是load到本地的,126似乎还会重新请求.在近期项目该开发方式已经基本成 ...
- firebug的使用方法和技巧(web开发调试工具)
Firebug是firefox下的一个插件,能够调试所有网站语言,如Html,Css等,但FireBug最吸引我的就是javascript调试功 能,使用起来非常方便,而且在各种浏览器下都能使用(IE ...
- poj 3101 Astronomy (java 分数的最小公倍数 gcd)
题目链接 要用大数,看了别人的博客,用java写的. 题意:求n个运动周期不完全相同的天体在一条直线上的周期. 分析:两个星球周期为a,b.则相差半周的长度为a*b/(2*abs(a-b)),对于n个 ...
- source insight快捷键及使用技巧
source insight快捷键及使用技巧 退出程序 : Alt+F4 重画屏幕 ...
- error while loading shared libraries: libevent-2.0.so.5解决办法
安装memcache时,需要建立文件索引或者说文件连接(link),类似windows下的快捷方式 启动服务时出现 error while loading shared libraries: libe ...
- dict 字典
Python 学习笔记[dict的操作方法] Python中dict详解
- apache开源项目 --Struts
struts简介 Struts是Apache软件基金会(ASF)赞助的一个开源项目.它最初是jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目.它通过采用JavaServlet/ ...
- 省常中模拟 Test4
prime 数论 题意:分别求 1*n.2*n.3*n.... n*n 关于模 p 的逆元.p 是质数,n < p. 初步解法:暴力枚举.因为 a 关于模 p 的逆元 b 满足 ab mod p ...