明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

PHP如何透過ODBC來存取數(shù)據(jù)庫

[摘要]使用的環(huán)境 先建立一個測試用的數(shù)據(jù)庫 接著建立一個ODBC連結(jié) 再建個測試用的PHP Script 咱們來測試吧 使用的環(huán)境本文件主要是在Win32的環(huán)境下作說明, 您需要的是臺跑Windows 9x/NT/2000的計算機(jī), 并裝有任何一種web server和PHP3或PHP4, 且可正確執(zhí)行...
使用的環(huán)境
先建立一個測試用的數(shù)據(jù)庫
接著建立一個ODBC連結(jié)
再建個測試用的PHP Script
咱們來測試吧
使用的環(huán)境

本文件主要是在Win32的環(huán)境下作說明, 您需要的是臺跑Windows 9x/NT/2000的計算機(jī), 并裝有任何一種web server和PHP3或PHP4, 且可正確執(zhí)行PHP Script. 并有一種以上的SQL數(shù)據(jù)庫軟件, 例如:Access...

本文件以MS-Access數(shù)據(jù)庫來作說明, 其它種的數(shù)據(jù)庫端, 皆可以類似的方法來作ODBC連結(jié).

先建立一個測試用的數(shù)據(jù)庫

進(jìn)入MS-Access, 建立一個odbctest.mdb的檔案.
開始建立一個數(shù)據(jù)表(table).
此數(shù)據(jù)表我們給它兩個字段: id 和 name.  
將此資料表命名為 Class .  
接著我們輸入一些數(shù)據(jù).例如:  
接著建立一個ODBC連結(jié)
開啟 控制臺 里的 "ODBC 數(shù)據(jù)來源" .  
選擇 "系統(tǒng)數(shù)據(jù)來源名稱" 頁.
點(diǎn)選 "新增..." 按鈕.
選擇你想使用的 ODBC 驅(qū)動程序. 在此請選擇 "Microsoft Access Driver", 當(dāng)然若您使用其它種的數(shù)據(jù)庫端, 就選擇該數(shù)據(jù)庫的ODBC Driver.
點(diǎn)選 "完成" 按鈕.
接著會出現(xiàn)這個窗口, 來作進(jìn)一步的設(shè)定.  
輸入數(shù)據(jù)來源名稱為 "WebDB" . 描述的部分可以隨便輸入, 自己了解就可以了.
按 "選取..." 鈕, 輸入您欲連結(jié)的數(shù)據(jù)庫檔案位置. 例如: 這里的 c:\odbctest.mdb
接著再點(diǎn)選 "進(jìn)階..." 鈕. 會出現(xiàn)這個畫面:  
您需要輸入的部分是 : 登入名稱和密碼, 在此我們先分別設(shè)成 'webuser' 和 'webpassword'.
OK了. ODBC的設(shè)定部分已經(jīng)完成了.
再建個測試用的PHP Script
以下是個測試用的PHP Script內(nèi)容, 請將它save起來, 例如存到您web server的文件根目錄.
<?
function Error_Handler( $msg, $cnx )
{
    echo "$msg \n";
        // 為避免占用連結(jié), 在程序結(jié)束前close掉是很重要的.
    odbc_close( $cnx);
    exit();
}

    // 建立一個 ODBC 連結(jié), 傳回至 $cnx
    $cnx = odbc_connect( 'WebDB' , 'webuser', 'webpassword' );

//    在測試時若有權(quán)限上問題, 也許你可以使用 superadmin 來存取 :
//    $cnx = odbc_connect( 'WebDB' , [sa login] , [sa password] );

    if( ! $cnx ) {
        Error_handler( "在 odbc_connect 有錯誤發(fā)生" , $cnx );
    }

    // 送出一個簡單的 odbc query . 傳回一個 odbc 指標(biāo)
    $cur= odbc_exec( $cnx, "select id,name from Class" );
    if( ! $cur ) {
        Error_handler( "在 odbc_exec 有錯誤發(fā)生( 沒有指標(biāo)傳回 ) " , $cnx );
    }


    echo "<table border=1><tr><th>座號</th><th>姓名</th></tr>\n";
    $num_row=0;

        // 取出成功傳回的數(shù)據(jù)
    while( odbc_fetch_row( $cur ) )
    {
        $num_row++;
            // 抓取 "id" 字段的數(shù)據(jù)
        $id= odbc_result( $cur, 1 );
            // 抓取 "name"字段的數(shù)據(jù)
        $name= odbc_result( $cur, 2 );
        echo "<tr><td>$id</td><td>$name</td></tr>\n";
    }

    echo "<tr><td colspan=2>共 $num_row 人 </td></tr></table>";

    odbc_close( $cnx);

?>



咱們來測試吧

從您的網(wǎng)頁瀏覽器, 開啟瀏覽這個測試用的PHP Script.

如果一切正確無誤的話, 您應(yīng)該可以看到以下的數(shù)據(jù):

座號 姓名
1 Ernest
2 Norman
3 PHP/Zend RC
4 ODBCCooler
5 我是五號
6 六號就是我
共 6 人