pdo的三个预定义类,PDO PDOStatement PDOException

2008-09-28 18:51 1215人阅读 评论(0) 举报
 分类:
 

转载自:http://www.fanbin.name/2007/12/20/pdo-%e7%ae%80%e4%bb%8b-pdo%e4%b8%ad%e7%9a%84%e4%b8%89%e4%b8%aa%e7%b1%bb%e5%8f%8a%e5%85%b6%e6%96%b9%e6%b3%95/

PDO中包含三个预定义的类,它们分别是 PDOPDOStatement  和 PDOException,下面将分别简单介绍一下。后面的系列相关文章会使用若干示例介绍这几个类的使用。

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

方法:

  1. PDO - 构造器,构建一个新的PDO对象
  2. beginTransaction - 开始事务
  3. commit - 提交事务
  4. errorCode - 从数据库返回一个错误代号,如果有的话
  5. errorInfo - 从数据库返回一个含有错误信息的数组,如果有的话
  6. exec - 执行一条SQL语句并返回影响的行数
  7. getAttribute - 返回一个数据库连接属性
  8. lastInsertId - 返回最新插入到数据库的行(的ID)
  9. prepare - 为执行准备一条SQL语句,返回语句执行后的联合结果集(PDOStatement)
  10. query - 执行一条SQL语句并返回一个结果集
  11. quote - 返回添加了引号的字符串,以使其可用于SQL语句中
  12. rollBack - 回滚一个事务
  13. setAttribute - 设置一个数据库连接属性
  1. /* 通过 ODBC 驱动建立数据库连接 */
  2. $dsn = 'mysql:dbname=testdb;host=127.0.0.1';
  3. $user = 'dbuser';
  4. $password = 'dbpass';
  5. try {
  6.     $dbh = new PDO($dsn, $user, $password);
  7. } catch (PDOException $e) {
  8.     echo 'Connection failed: ' . $e->getMessage();
  9. }
  10. /* 事务处理开始,关闭自动提交事务(autocommit) */
  11. $dbh->beginTransaction();
  12. /* 更改数据库结构 */
  13. $sth = $dbh->exec("DROP TABLE fruit");
  14. /* 提交事务 */
  15. $dbh->commit();
  16. /* Database connection is now back in autocommit mode */

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

方法:

  1. bindColumn - 绑定一个PHP变量到结果集中的输出列
  2. bindParam - 绑定一个PHP变量到一个预处理语句中的参数
  3. bindValue - 绑定一个值到与处理语句中的参数
  4. closeCursor - 关闭游标,使语句可以再次执行
  5. columnCount - 返回结果集中的列的数量
  6. errorCode - 从语句中返回一个错误代号,如果有的话
  7. errorInfo - 从语句中返回一个包含错误信息的数组,如果有的话
  8. execute - 执行一条预处理语句
  9. fetch - 从结果集中取出一行
  10. fetchAll - 从结构集中取出一个包含了所有行的数组
  11. fetchColumn - 返回结果集中某一列中的数据
  12. getAttribute - 返回一个 PDOStatement 属性
  13. getColumnMeta - 返回结果集中某一列的结构(metadata?)
  14. nextRowset - 返回下一结果集
  15. rowCount - 返回SQL语句执行后影响的行数
  16. setAttribute - 设置一个PDOStatement属性
  17. setFetchMode - 为 PDOStatement 设定获取数据的方式

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

  1. <?php
  2. try {
  3.    $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
  4.    foreach ($dbh->query('SELECT * from FOO') as $row) {
  5.       print_r($row);
  6.    }
  7.    $dbh = null;
  8. } catch (PDOException $e) {
  9.    print "Error!: " . $e->getMessage() . "<br/>";
  10.    die();
  11. }
  12. ?> 
posted @ 2016-05-16 22:27  夜深人静123  阅读(254)  评论(0编辑  收藏  举报