PEAR DB 提供資料庫抽象層、高級錯誤處理機制,讓 PHP 應用程式能以統一介面操作多種資料庫。
由於 PEAR 持續開發中,建議從 CVS 取得最新版(PHP 4.0.6 起已內建)。
# cd /usr/local/lib
# cvs -d :pserver:cvsread@cvs.php.net:/repository login
# cvs -d :pserver:cvsread@cvs.php.net:/repository export -D "last week" php4/pear
編輯 php.ini:
include_path = ".:/usr/local/lib/php4/pear"
或在程式中動態設定:
ini_set('include_path', '/path/to/pear');
<?php
require_once 'DB.php';
$user = 'foo';
$pass = 'bar';
$host = 'localhost';
$db_name = 'clients_db';
// DSN 格式:phptype://username:password@hostspec/database
$dsn = "mysql://$user:$pass@$host/$db_name";
$db = DB::connect($dsn);
// 持久連線:$db = DB::connect($dsn, true);
if (DB::isError($db)) {
die($db->getMessage());
}
// ... 執行查詢 ...
$db->disconnect();
?>
phptype(dbsyntax)://username:password@protocol+hostspec/database
// 常見變體:
phptype://username:password@hostspec/database_name
phptype://hostspec/database
phptype://hostspec
| 代碼 | 資料庫 |
|---|---|
| mysql | MySQL |
| pgsql | PostgreSQL |
| ibase | InterBase |
| msql | Mini SQL |
| mssql | Microsoft SQL Server |
| oci8 | Oracle 7/8/8i |
| odbc | ODBC |
| sybase | SyBase |
| ifx | Informix |
| fbsql | FrontBase |
<?php
$sql = "select * from clients";
$result = $db->query($sql);
if (DB::isError($result)) {
die($result->getMessage());
}
// SELECT 成功回傳 DB Result 物件,其他回傳 DB_OK
?>
(本頁結束,續下一頁說明結果集處理)