PHP 版本各異,已經停止升級開發的有 4.0 系列的 4.4.x,但現在還有部分生產環境在跑這個版本,需要繼續維護代碼。PHP 5.0 系列是現在開發和應用的主流版本,有 5.1.x 和 5.2.x 系列。PHP 6.0 目前還是試用版本,用 PHP 開發軟件產品的人現在可以預先作兼容性測試。
PHP 支持的數據庫很多,包括 PHP 本身自帶的數據庫驅動組件,例如 mysql.dll、oci_oracle 等。PHP 從 5.1 版本以後正在力推其通用的數據庫驅動組件 PDO,通過這個高度抽象的數據庫存取組件,PHP 可以支持目前絕大多數數據庫產品,而且這個數量還在增加,具有極大的擴展性。而第三方廠家很早就在開發 ADODB 數據庫存取組件,現在仍然在繼續進展中。
PHP 自身支持的數據庫組件,目前最流行的是 MySQL 組件。PHP4.0 和 5.0 版本對 Oracle 的支持使用了不同的函數組,5.0 兼容 4.0,但函數名已經更換了。PHP4.0 用的是 OCILogon()、OCIParse()、OCIExecute()、OCIFetchInto()等函數。而 PHP5.0 用的是 oci_connect()、oci_parse、oci_bind_by_name()、oci_execute()、oci_fetch_all()等等函數,能看出來是向 MySQL 的函數命名靠攏。這些函數是用 C 語言對 PHP 進行擴展開發的,理論上效率最高,但也許因為資料缺乏等原因,使用的人似乎並不見多。其針對 Oracle 表的分頁代碼等,也比較復雜。
而 ADODB 組件和 Windows 下 ASP.NET 使用的 ADO 組件包裝幾乎是一模一樣的,做過 ASP/ASP.NET + ACCESS/MS-SQLServer 開發的人應該似曾相識,很容易上手。所以,用 PHP 做 MS-SQLServer 或 oracle 開發,ADODB 應該是考慮之列。ADODB 對 PHP 的 4.0 和 5.0 版本均支持,而 PDO 僅僅支持 PHP 的 5.1 以上版本,這一點也應該考慮,做項目的問題不大,做產品的,就要考慮版本的適用性和軟件的部署環境了。
一段 PHP 使用 ADODB 組件存取 Oracle9i 數據庫的代碼示例:
<?php
require_once(”adodb/adodb.inc.php”); //包含ADODB類庫
$db = ADONewConnection(”oci8″); //指定Oracle8.0以上數據庫
$db->Connect(”mydb9″, “scott”, “tiger”); //三個參數分別是數據庫網絡服務名、用戶(方案)和密碼
$rs = $db->Execute(”select * from emp”); //執行SQL語句
//取記錄中的數據
while (!$rs->EOF)
{
echo $rs->fields[JOB] .’<br>’;
$rs->MoveNext();
}
?>