php pdo

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

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

 

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

PDO->query()

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

语法:sql

PDO->query()

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

语法: 数组

PDO->query( string statement ) 

例子: fetch

<?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 表进行查询操做。 spa

PDOStatement->fetch()

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

语法: 对象

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); 
相关文章
相关标签/搜索