PHP PDO
PHP 數據對象(PDO) 擴展為PHP訪問數據庫定義了一個輕量級的一致接口。
PDO 提供了一個數據訪問抽象層,這意味著,不管使用哪種數據庫,都可以用相同的函數(方法)來查詢和獲取數據。
PDO隨PHP5.1發行,在PHP5.0的PECL擴展中也可以使用,無法運行於之前的PHP版本。
PDO 安裝
你可以通過PHP 的phpinfo() 函數來查看是否安裝了PDO擴展。
在Unix 系統上安裝PDO
在Unix上或Linux上你需要添加以下擴展:
extension=pdo.so
Windows 用戶
PDO 和所有主要的驅動作為共享擴展隨PHP 一起發布,要激活它們只需簡單地編輯php.ini 文件,並添加以下擴展:
extension=php_pdo.dll除此之外還有以下對應的各種數據庫擴展:
;extension=php_pdo_firebird.dll ;extension=php_pdo_informix.dll ;extension=php_pdo_mssql.dll ;extension=php_pdo_mysql.dll ;extension=php_pdo_oci.dll ;extension=php_pdo_oci8.dll ;extension=php_pdo_odbc.dll ;extension=php_pdo_pgsql.dll ;extension=php_pdo_sqlite.dll
在設定好這些配置後,我們需要重啟PHP 或Web服務器。
接下來我們們來看下具體的實例,以下為使用PDO連接MySql數據庫的實例:
<?php $dbms='mysql'; //数据库类型 $host='localhost'; //数据库主机名 $dbName='test'; //使用的数据库 $user='root'; //数据库连接用户名 $pass=''; //对应的密码 $dsn="$dbms:host=$host;dbname=$dbName"; try { $dbh = new PDO($dsn, $user, $pass); //初始化一个PDO对象 echo "连接成功<br/>"; /*你还可以进行一次搜索操作 foreach ($dbh->query('SELECT * from FOO') as $row) { print_r($row); //你可以用 echo($GLOBAL); 来看到这些值 } */ $dbh = null; } catch (PDOException $e) { die ("Error!: " . $e->getMessage() . "<br/>"); } //默认这个不是长连接,如果需要数据库长连接,需要最后加一个参数:array(PDO::ATTR_PERSISTENT => true) 变成这样: $db = new PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true)); ?>
很簡單吧,接下來就讓我們來具體看下PHP PDO具體說明:
- 預定義常量
- PHP PDO連接連接管理
- PHP PDO事務與自動提交
- PHP PDO預處理語句與存儲過程
- PHP PDO錯誤與錯誤處理
- PHP PDO大對象(LOBs)
- PDO 類:
- PDO::beginTransaction —啟動一個事務
- PDO::commit —提交一個事務
- PDO::__construct —創建一個表示數據庫連接的PDO實例
- PDO::errorCode —獲取跟數據庫句柄上一次操作相關的SQLSTATE
- PDO::errorInfo —返回最後一次操作數據庫的錯誤信息
- PDO::exec —執行一條SQL語句,並返回受影響的行數
- PDO::getAttribute —取回一個數據庫連接的屬性
- PDO::getAvailableDrivers —返回一個可用驅動的數組
- PDO::inTransaction —檢查是否在一個事務內
- PDO::lastInsertId —返回最後插入行的ID或序列值
- PDO::prepare —備要執行的SQL語句並返回一個PDOStatement對象
- PDO::query —執行SQL語句,返回PDOStatement對象,可以理解為結果集
- PDO::quote —為SQL語句中的字符串添加引號。
- PDO::rollBack —回滾一個事務
- PDO::setAttribute —設置屬性
- PDOStatement 類:
- PDOStatement::bindColumn —綁定一列到一個PHP變量
- PDOStatement::bindParam —綁定一個參數到指定的變量名
- PDOStatement::bindValue —把一個值綁定到一個參數
- PDOStatement::closeCursor —關閉游標,使語句能再次被執行。
- PDOStatement::columnCount —返回結果集中的列數
- PDOStatement::debugDumpParams —打印一條SQL預處理命令
- PDOStatement::errorCode —獲取跟上一次語句句柄操作相關的SQLSTATE
- PDOStatement::errorInfo —獲取跟上一次語句句柄操作相關的擴展錯誤信息
- PDOStatement::execute —執行一條預處理語句
- PDOStatement::fetch —從結果集中獲取下一行
- PDOStatement::fetchAll —返回一個包含結果集中所有行的數組
- PDOStatement::fetchColumn —從結果集中的下一行返回單獨的一列。
- PDOStatement::fetchObject —獲取下一行並作為一個對象返回。
- PDOStatement::getAttribute —檢索一個語句屬性
- PDOStatement::getColumnMeta —返回結果集中一列的元數據
- PDOStatement::nextRowset —在一個多行集語句句柄中推進到下一個行集
- PDOStatement::rowCount —返回受上一個SQL語句影響的行數
- PDOStatement::setAttribute —設置一個語句屬性
- PDOStatement::setFetchMode —為語句設置默認的獲取模式。