PHP PDO
PHP PDO
PHP 數(shù)據(jù)對象 (PDO) 擴展為PHP訪問數(shù)據(jù)庫定義了一個輕量級的一致接口。
PDO 提供了一個數(shù)據(jù)訪問抽象層,這意味著,不管使用哪種數(shù)據(jù)庫,都可以用相同的函數(shù)(方法)來查詢和獲取數(shù)據(jù)。
PDO隨PHP5.1發(fā)行,在PHP5.0的PECL擴展中也可以使用,無法運行于之前的PHP版本。
PDO 安裝
你可以通過 PHP 的 phpinfo() 函數(shù)來查看是否安裝了PDO擴展。
在 Unix 系統(tǒng)上安裝 PDO
在Unix上或Linux上你需要添加以下擴展:
extension=pdo.so<button class="copy-code-button" type="button" data-clipboard-text="extension=pdo.so "></button>
Windows 用戶
PDO 和所有主要的驅(qū)動作為共享擴展隨 PHP 一起發(fā)布,要激活它們只需簡單地編輯 php.ini 文件,并添加以下擴展:
extension=php_pdo.dll<button class="copy-code-button" type="button" data-clipboard-text="extension=php_pdo.dll "></button>除此之外還有以下對應(yīng)的各種數(shù)據(jù)庫擴展:
;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<button class="copy-code-button" type="button" data-clipboard-text=" ;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 "></button>
在設(shè)定好這些配置后,我們需要重啟PHP 或 Web服務(wù)器。
接下來我們們來看下具體的實例,以下為使用PDO連接MySql數(shù)據(jù)庫的實例:
實例
<?php
$dbms='mysql'; //數(shù)據(jù)庫類型
$host='localhost'; //數(shù)據(jù)庫主機名
$dbName='test'; //使用的數(shù)據(jù)庫
$user='root'; //數(shù)據(jù)庫連接用戶名
$pass=''; //對應(yīng)的密碼
$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/>");
}
//默認這個不是長連接,如果需要數(shù)據(jù)庫長連接,需要最后加一個參數(shù):array(PDO::ATTR_PERSISTENT => true) 變成這樣:
$db = new PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true));
?>
$dbms='mysql'; //數(shù)據(jù)庫類型
$host='localhost'; //數(shù)據(jù)庫主機名
$dbName='test'; //使用的數(shù)據(jù)庫
$user='root'; //數(shù)據(jù)庫連接用戶名
$pass=''; //對應(yīng)的密碼
$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/>");
}
//默認這個不是長連接,如果需要數(shù)據(jù)庫長連接,需要最后加一個參數(shù):array(PDO::ATTR_PERSISTENT => true) 變成這樣:
$db = new PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true));
?>
很簡單吧,接下來就讓我們來具體看下PHP PDO具體說明:
- 預(yù)定義常量
- PHP PDO連接連接管理
- PHP PDO 事務(wù)與自動提交
- PHP PDO 預(yù)處理語句與存儲過程
- PHP PDO 錯誤與錯誤處理
- PHP PDO 大對象 (LOBs)
- PDO 類:
- PDO::beginTransaction — 啟動一個事務(wù)
- PDO::commit — 提交一個事務(wù)
- PDO::__construct — 創(chuàng)建一個表示數(shù)據(jù)庫連接的 PDO 實例
- PDO::errorCode — 獲取跟數(shù)據(jù)庫句柄上一次操作相關(guān)的 SQLSTATE
- PDO::errorInfo — 返回最后一次操作數(shù)據(jù)庫的錯誤信息
- PDO::exec — 執(zhí)行一條 SQL 語句,并返回受影響的行數(shù)
- PDO::getAttribute — 取回一個數(shù)據(jù)庫連接的屬性
- PDO::getAvailableDrivers — 返回一個可用驅(qū)動的數(shù)組
- PDO::inTransaction — 檢查是否在一個事務(wù)內(nèi)
- PDO::lastInsertId — 返回最后插入行的ID或序列值
- PDO::prepare — 備要執(zhí)行的SQL語句并返回一個 PDOStatement 對象
- PDO::query — 執(zhí)行 SQL 語句,返回PDOStatement對象,可以理解為結(jié)果集
- PDO::quote — 為SQL語句中的字符串添加引號。
- PDO::rollBack — 回滾一個事務(wù)
- PDO::setAttribute — 設(shè)置屬性
- PDOStatement 類:
- PDOStatement::bindColumn — 綁定一列到一個 PHP 變量
- PDOStatement::bindParam — 綁定一個參數(shù)到指定的變量名
- PDOStatement::bindValue — 把一個值綁定到一個參數(shù)
- PDOStatement::closeCursor — 關(guān)閉游標,使語句能再次被執(zhí)行。
- PDOStatement::columnCount — 返回結(jié)果集中的列數(shù)
- PDOStatement::debugDumpParams — 打印一條 SQL 預(yù)處理命令
- PDOStatement::errorCode — 獲取跟上一次語句句柄操作相關(guān)的 SQLSTATE
- PDOStatement::errorInfo — 獲取跟上一次語句句柄操作相關(guān)的擴展錯誤信息
- PDOStatement::execute — 執(zhí)行一條預(yù)處理語句
- PDOStatement::fetch — 從結(jié)果集中獲取下一行
- PDOStatement::fetchAll — 返回一個包含結(jié)果集中所有行的數(shù)組
- PDOStatement::fetchColumn — 從結(jié)果集中的下一行返回單獨的一列。
- PDOStatement::fetchObject — 獲取下一行并作為一個對象返回。
- PDOStatement::getAttribute — 檢索一個語句屬性
- PDOStatement::getColumnMeta — 返回結(jié)果集中一列的元數(shù)據(jù)
- PDOStatement::nextRowset — 在一個多行集語句句柄中推進到下一個行集
- PDOStatement::rowCount — 返回受上一個 SQL 語句影響的行數(shù)
- PDOStatement::setAttribute — 設(shè)置一個語句屬性
- PDOStatement::setFetchMode — 為語句設(shè)置默認的獲取模式。
相關(guān)文章
- PHP 運算符
- PHP If Else 語句
- PHP 命名空間 namespace
- PHP array_diff_key() 函數(shù)
- PHP array_fill() 函數(shù)
- PHP array_intersect() 函數(shù)
- PHP array_key_last() 函數(shù)
- PHP array_multisort() 函數(shù)
- PHP array_reduce() 函數(shù)
- PHP array_replace() 函數(shù)
- PHP array_splice() 函數(shù)
- PHP array_sum() 函數(shù)
- PHP array_unique() 函數(shù)
- PHP array_unshift() 函數(shù)
- PHP array_walk() 函數(shù)
- PHP natsort() 函數(shù)
- PHP next() 函數(shù)
- PHP rsort() 函數(shù)
- PHP cURL 函數(shù)
- PHP Filter 函數(shù)