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提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方 ...
随机推荐
- HDU5086——Revenge of Segment Tree(BestCoder Round #16)
Revenge of Segment Tree Problem DescriptionIn computer science, a segment tree is a tree data struct ...
- shell编程基础(2)---&&与||
shell 编程重要的应用就是管理系统,对于管理系统中成千上万的程序而言,查询某个文件名是否存在,并且获取该文件名所指代文件基本信息是系统管理员的基本任务.shell命令可以很轻松的完成这项任务. # ...
- HDU 4358 Boring counting 树状数组+思路
研究了整整一天orz……直接上官方题解神思路 #include <cstdio> #include <cstring> #include <cstdlib> #in ...
- myeclipse快速开发配置
1,打开MyEclipse 2013然后“window”→“Preferences” 2. 选择“java”,展开,“Editor”,选择“Content Assist”. 3. 选择“Content ...
- group by的SQL语句
有一张项目表 CREATE TABLE [ProjectTable] ( [ProjectID] NVARCHAR(16) NOT NULL, [ProjectName] NVARCHAR(20) N ...
- C++STL 之排列
固然我们可以自己使用递归编写全排列程序,但是既然STL里面已将有了这个功能为什么不直接用呢,下面就写一下直接使用C++ STL生成全排序的程序 函数名:next_permutation 包含头文件:a ...
- linux delete files older than 3 days
4 down vote accepted This is easy enough (although note that this goes by a modification time more t ...
- bzoj1913
这是一道好题,要求每个三点圆覆盖的点数和 我们可以算四边形的贡献,四边形显然分成两种:凸四边形和凹四边形 显然,凹四边形的覆盖只可能是三个点组成三角形包含另一个点,所以贡献是1 凸四边形,其最小圆覆盖 ...
- 终极解决方案:windows10开机黑屏,死机
windows10开机黑屏,死机一般情况都是由于双显卡中的独立显卡驱动造成的! 那么试着升级一下你的BIOS吧!一定要在官网下载你对应的BIOS驱动,然后双击安装,这个时候就别再动机子了,让他自己刷新 ...
- UVa 10129 Play On Words【欧拉道路 并查集 】
题意:给出n个单词,问这n个单词能否首尾接龙,即能否构成欧拉道路 按照紫书上的思路:用并查集来做,取每一个单词的第一个字母,和最后一个字母进行并查集的操作 但这道题目是欧拉道路(下面摘自http:// ...