PHP PDO

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 — 為語句設定預設的獲取模式。