您的位置:首页 > 其它

PDO中包含三个预定义的类,它们分别是PDO、PDOStatement和PDOException

2013-05-23 10:15 169 查看
转载自:http://blog.163.com/qj_l12@126/blog/static/35930826200962242238411/

一、PDO

代表一个PHP和数据库之间的连接

方法:

PDO - 构造器,构建一个新的PDO对象

beginTransaction - 开始事务

commit - 提交事务

errorCode - 从数据库返回一个错误代号,如果有的话

errorInfo - 从数据库返回一个含有错误信息的数组,如果有的话

exec - 执行一条SQL语句并返回影响的行数

getAttribute - 返回一个数据库连接属性

lastInsertId - 返回最新插入到数据库的行(的ID)

prepare - 为执行准备一条SQL语句

query - 执行一条SQL语句并返回一个结果集

quote - 返回添加了引号的字符串,以使其可用于SQL语句中

rollBack - 回滚一个事务

setAttribute - 设置一个数据库连接属性



二、PDOStatement

代表一条预处理语句以及语句执行后的联合结果集(associated result set)。

方法:

bindColumn - 绑定一个PHP变量到结果集中的输出列

bindParam - 绑定一个PHP变量到一个预处理语句中的参数

bindValue - 绑定一个值到与处理语句中的参数

closeCursor - 关闭游标,使语句可以再次执行

columnCount - 返回结果集中的列的数量

errorCode - 从语句中返回一个错误代号,如果有的话

errorInfo - 从语句中返回一个包含错误信息的数组,如果有的话

execute - 执行一条预处理语句

fetch - 从结果集中取出一行

fetchAll - 从结构集中取出一个包含了所有行的数组

fetchColumn - 返回结果集中某一列中的数据

getAttribute - 返回一个 PDOStatement 属性

getColumnMeta - 返回结果集中某一列的结构(metadata?)

nextRowset - 返回下一结果集

rowCount - 返回SQL语句执行后影响的行数

setAttribute - 设置一个PDOStatement属性

setFetchMode - 为 PDOStatement 设定获取数据的方式

三、PDOException

返回PDO触发的错误。你不能从你的代码中抛出一个PDOException异常。

//PDOException类:

class PDOException extends Exception

{

// 对应 PDO::errorInfo()

// 或 PDOStatement::errorInfo()

public $errorInfo = null;

// 文本化的错误信息

// 使用Exception::getMessage() 获取它

protected $message;

// SQLSTATE 错误代号

// 使用Exception::getCode() 获取它

protected $code;

}

以上因为用到setAttribute()方法,放上那两个参数,把字段名强制转换成大写。下面列出多有PDO::setAttribute()的参数:

PDO::ATTR_CASE: 强制列名变成一种格式,详细如下(第二个参数):

PDO::CASE_LOWER: 强制列名是小写.

PDO::CASE_NATURAL: 列名按照原始的方式

PDO::CASE_UPPER: 强制列名为大写.

PDO::ATTR_ERRMODE: 错误提示.

PDO::ERRMODE_SILENT: 不显示错误信息,只显示错误码.

PDO::ERRMODE_WARNING: 显示警告错误.

PDO::ERRMODE_EXCEPTION: 抛出异常.

PDO::ATTR_ORACLE_NULLS (不仅仅是ORACLE有效,别的数据库也有效): )指定数据库返回的NULL值在php中对应的数值。

PDO::NULL_NATURAL: 不变.

PDO::NULL_EMPTY_STRING: Empty string is converted to NULL.

PDO::NULL_TO_STRING: NULL is converted to an empty string.

PDO::ATTR_STRINGIFY_FETCHES: Convert numeric values to strings when fetching. Requires bool.

PDO::ATTR_STATEMENT_CLASS: Set user-suppliedstatement class derived from PDOStatement. Cannot be used withpersistent PDO instances. Requires array(string classname, array(mixedconstructor_args)).

PDO::ATTR_AUTOCOMMIT (available in OCI, Firebird and MySQL): Whether to autocommit every single statement.

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (available in MySQL): Use buffered queries.

例子中的$rs->setFetchMode(PDO::FETCH_ASSOC);是PDOStatement::setFetchMode(),对返回类型的声明。

有如下:

PDO::FETCH_ASSOC -- 关联数组形式

PDO::FETCH_NUM -- 数字索引数组形式

PDO::FETCH_BOTH -- 两者数组形式都有,这是缺省的

PDO::FETCH_OBJ -- 按照对象的形式,类似于以前的 mysql_fetch_object()

查询操作主要是PDO::query()、PDO::exec()、PDO::prepare()。

PDO::query()主要是用于有记录结果返回的操作,特别是SELECT操作,

PDO::exec()主要是针对没有结果集合返回的操作,比如INSERT、UPDATE、DELETE等操作,它返回的结果是当前操作影响的列数。

PDO::prepare()主要是预处理操作,需要通过$rs->execute()来执行预处理里面的SQL语句,这个方法可以绑定参数,功能比较强大,不是本文能够简单说明白的,大家可以参考手册和其他文档。

获取结果集操作主要是:PDOStatement::fetchColumn()、PDOStatement::fetch()、PDOStatement::fetchALL()。

PDOStatement::fetchColumn() 是获取结果指定第一条记录的某个字段,缺省是第一个字段。

PDOStatement::fetch() 是用来获取一条记录,

PDOStatement::fetchAll()是获取所有记录集到一个中,获取结果可以通过PDOStatement::setFetchMode来设置需要结果集合的类型。

另外有两个周边的操作,一个是PDO::lastInsertId()和PDOStatement::rowCount()。PDO::lastInsertId()是返回上次插入操作,主键列类型是自增的最后的自增ID。

PDOStatement::rowCount()主要是用于PDO::query()和PDO::prepare()进行DELETE、INSERT、UPDATE操作影响的结果集,对PDO::exec()方法和SELECT操作无效。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐