PDO中包含三个预定义的类,它们分别是 PDO、PDOStatement 和 PDOException,下面将分别简单介绍一下。后面的系列相关文章会使用若干示例介绍这几个类的使用。
一、PDO
代表一个PHP和数据库之间的连接。
方法:
- PDO - 构造器,构建一个新的PDO对象
- beginTransaction - 开始事务
- commit - 提交事务
- errorCode - 从数据库返回一个错误代号,如果有的话
- errorInfo - 从数据库返回一个含有错误信息的数组,如果有的话
- exec - 执行一条SQL语句并返回影响的行数
- getAttribute - 返回一个数据库连接属性
- lastInsertId - 返回最新插入到数据库的行(的ID)
- prepare - 为执行准备一条SQL语句,返回语句执行后的联合结果集(PDOStatement)
- query - 执行一条SQL语句并返回一个结果集
- quote - 返回添加了引号的字符串,以使其可用于SQL语句中
- rollBack - 回滚一个事务
- setAttribute - 设置一个数据库连接属性
- /* 通过 ODBC 驱动建立数据库连接 */
- $dsn = 'mysql:dbname=testdb;host=127.0.0.1';
- $user = 'dbuser';
- $password = 'dbpass';
- try {
- $dbh = new PDO($dsn, $user, $password);
- } catch (PDOException $e) {
- echo 'Connection failed: ' . $e->getMessage();
- }
- /* 事务处理开始,关闭自动提交事务(autocommit) */
- $dbh->beginTransaction();
- /* 更改数据库结构 */
- $sth = $dbh->exec("DROP TABLE fruit");
- /* 提交事务 */
- $dbh->commit();
- /* Database connection is now back in autocommit mode */
二、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异常。
- <?php
- try {
- $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
- foreach ($dbh->query('SELECT * from FOO') as $row) {
- print_r($row);
- }
- $dbh = null;
- } catch (PDOException $e) {
- print "Error!: " . $e->getMessage() . "<br/>";
- die();
- }
- ?>