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 为可选参数,表示希望返回的结果集类型,默认为关联及数字索引共有的数组形式。
| 取值 | 说明 |
|---|---|
| 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);
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提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方 ...
随机推荐
- 【C#设计模式——创建型模式】工场方法模式
工场方法模式对简单工场模式进行了乔庙的扩展,不是用一个专门的类来决定实例化哪一个子类.相反,超类把这种决定延迟到每个子类.这种模式实际上没有决策点,就是没有直接选择一个子类实例化的决策. 看书上的例子 ...
- ConcurrentDictionary的ToDictionary
如果Value是引用,那么在使用Value.Clear()的时候.会清空Value的所有元素,但是不会改变Value的引用 private static void Main() { try { var ...
- 对github中项目进行更新
进入本地仓库文件夹,我的仓库名是tufujiegit,然后 进入 git clone 接着将先前记录下来的地址复制到后面,回车 将下载github中该仓库的所有文件及文件夹,包括.git文件夹在内 ...
- trackr: An AngularJS app with a Java 8 backend – Part I
该系列文章来自techdev 我想分享在techdev公司开发的项目-trackr-的一些最新的见解.trackr是一个用来跟踪我们的工作时间,创建报告和管理请假的web应用程序.做这个程序的目的有两 ...
- hdu 4861 Couple doubi (找规律 )
题目链接 可以瞎搞一下,找找规律 题意:两个人进行游戏,桌上有k个球,第i个球的值为1i+2i+⋯+(p−1)i%p,两个人轮流取,如果DouBiNan的值大的话就输出YES,否则输出NO. 分析:解 ...
- 函数fil_node_create
/*******************************************************************//** Appends a new file to the c ...
- rsync不存在用户处理CPU消耗拒绝服务漏洞
受影响产品: rsync 3.1.0 漏洞描述: CVE ID:CVE-2014-2855 rsync是一款文件同步管理软件. rsync处理不存在用户时存在安全漏洞,可消耗大量CPU资源,造成拒绝服 ...
- hdu 4619 Warm up 2(并查集)
借用题解上的话,就是乱搞题.. 题意理解错了,其实是坐标系画错了,人家个坐标系,我给当矩阵画,真好反了.对于题目描述和数据不符的问题,果断相信数据了(这是有前车之鉴的hdu 4612 Warm up, ...
- LeetCode Contains Duplicate (判断重复元素)
题意: 如果所给序列的元素不是唯一的,则返回true,否则false. 思路: 哈希map解决. class Solution { public: bool containsDuplicate(vec ...
- Java [Leetcode 228]Summary Ranges
题目描述: Given a sorted integer array without duplicates, return the summary of its ranges. For example ...