?
This document uses PHP Chinese website manual Release
PDO(PHP Data Object),數(shù)據(jù)庫訪問抽象層,統(tǒng)一各種數(shù)據(jù)庫的訪問接口。
PDO支持的數(shù)據(jù)庫有如下(數(shù)據(jù)來自 php 官方網(wǎng)站)
驅(qū)動名稱 | 支持的數(shù)據(jù)庫 |
---|---|
PDO_CUBRID | Cubrid |
PDO_DBLIB | FreeTDS / Microsoft SQL Server / Sybase |
PDO_FIREBIRD | Firebird/Interbase 6 |
PDO_IBM | IBM DB2 |
PDO_INFORMIX | IBM Informix Dynamic Server |
PDO_MYSQL | MySQL 3.x/4.x/5.x |
PDO_OCI | Oracle Call Interface |
PDO_ODBC | ODBC v3 (IBM DB2, unixODBC and win32 ODBC) |
PDO_PGSQL | PostgreSQL |
PDO_SQLITE | SQLite 3 及 SQLite 2 |
PDO_SQLSRV | Microsoft SQL Server / SQL Azure |
PDO_4D | 4D |
配置 php.ini 配置文件,開啟相應(yīng)的擴(kuò)展
extension = php_pdo.dll
開啟對應(yīng)數(shù)據(jù)庫的擴(kuò)展,這里以 MySQL 為例。
extension = php_pdo_mysql.dll
通過查看
phpinfo();
可以看到 PDO 擴(kuò)展你的詳細(xì)信息,內(nèi)容如下:
通過參數(shù)的形式連接數(shù)據(jù)庫
<?php try { $dsn = 'mysql:host=localhost;dbname=test'; // 數(shù)據(jù)源 $username = 'root'; // 數(shù)據(jù)庫用戶名 $passwd = 'aaaaaa'; // 數(shù)據(jù)庫密碼 $pdo = new PDO($dsn, $username, $passwd); print_r($pdo); // 返回 PDO Object ( ) } catch (PDOException $e) { echo $e->getMessage(); }
通過 URI 的形式連接數(shù)據(jù)庫
<?php try { $dsn = 'uri:file:///Applications/MAMP/htdocs/Study/Pdo/dsn.txt'; // 數(shù)據(jù)源 其中 /Applications/MAMP/htdocs/Study/Pdo/dsn.txt 為文件 dsn.txt 路徑 $username = 'root'; // 數(shù)據(jù)庫用戶名 $passwd = 'aaaaaa'; // 數(shù)據(jù)庫密碼 $pdo = new PDO($dsn, $username, $passwd); print_r($pdo); // 返回 PDO Object ( ) } catch (PDOException $e) { echo $e->getMessage(); }
其中需要配置一個單獨的文件 dsn.txt
,文件內(nèi)容如
mysql:host=localhost;dbname=test
通過配置文件的形式連接數(shù)據(jù)庫
首先需要修改 PHP 的配置 php.ini
,新增如下代碼
pdo.dsn.test = "mysql:host=localhost;dbname=test"
命名為 test
,連接本地的 test 數(shù)據(jù)庫。
代碼中使用
<?php try { $dsn = 'test'; // 在 php.ini 中定義的名稱 $username = 'root'; // 數(shù)據(jù)庫用戶名 $passwd = 'aaaaaa'; // 數(shù)據(jù)庫密碼 $pdo = new PDO($dsn, $username, $passwd); print_r($pdo); // 返回 PDO Object ( ) } catch (PDOException $e) { echo $e->getMessage(); }