Home >php教程 >php手册 >PHP如何透過ODBC來存取資料庫

PHP如何透過ODBC來存取資料庫

WBOY
WBOYOriginal
2016-06-21 09:08:151335browse

odbc

使用的環境
先建立一個測試用的資料庫
接著建立一個ODBC連結
再建個測試用的PHP Script
咱們來測試吧
作者
感謝
使用的環境

本文件主要是在Win32的環境下作說明, 您需要的是台跑Windows 9x/NT/2000的電腦, 並裝有任何一種web server和PHP3或PHP4, 且可正確執行PHP Script. 並有一種以上的SQL資料庫軟體, 例如:Access...

本文件以MS-Access資料庫來作說明, 其它種的資料庫端, 皆可以類似的方法來作ODBC連結.

先建立一個測試用的資料庫

進入MS-Access, 建立一個odbctest.mdb的檔案.
開始建立一個資料表(table).
此資料表我們給它兩個欄位: id 和 name.  


將此資料表命名為 Class .  


接著我們輸入一些資料.例如:  
接著建立一個ODBC連結

開啟 控制台 裡的 "ODBC 資料來源" .  

選擇 "系統資料來源名稱" 頁.
點選 "新增..." 按鈕.
選擇你想使用的 ODBC 驅動程式. 在此請選擇 "Microsoft Access Driver", 當然若您使用其他種的資料庫端, 就選擇該資料庫的ODBC Driver.




點選 "完成" 按鈕.


接著會出現這個視窗, 來作進一步的設定.  


輸入資料來源名稱為 "WebDB" . 描述的部分可以隨便輸入, 自己了解就可以了.
按 "選取..." 鈕, 輸入您欲連結的資料庫檔案位置. 例如: 這裡的 c:\odbctest.mdb
接著再點選 "進階..." 鈕. 會出現這個畫面:  
您需要輸入的部分是 : 登入名稱和密碼, 在此我們先分別設成 'webuser' 和 'webpassword'.




OK了. ODBC的設定部分已經完成了.




再建個測試用的PHP Script

以下是個測試用的PHP Script內容, 請將它save起來, 例如存到您web server的文件根目錄.




//____________________________________________________________
//
//    單位    PHP/Zend RC (http://mark.ee.nctu.edu.tw:8888)
//    檔名    odbctest.php
//     用途    一個簡單的PHP程式,來測試透過ODBC如何存取資料庫
//    作者    ernest (Chiang Deng-Wei) 於 May 14, 2000
//    信箱    ernestch@ms2.url.com.tw
//____________________________________________________________


function Error_Handler( $msg, $cnx )
{
    echo "$msg \n";
        // 為避免佔用連結, 在程式結束前close掉是很重要的.
    odbc_close( $cnx);
    exit();
}

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

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

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

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


    echo "

\n";
    $num_row=0;

        // 取出成功傳回的資料
    while( odbc_fetch_row( $cur ) )
    {
        $num_row++;
            // 抓取 "id" 欄位的資料
        $id= odbc_result( $cur, 1 );
            // 抓取 "name"欄位的資料
        $name= odbc_result( $cur, 2 );
        echo "\n";
    }

    echo "
座號 姓名
$id $name
共 $num_row 人
";

    odbc_close( $cnx);

?>



咱們來測試吧

從您的網頁瀏覽器, 開啟瀏覽這個測試用的PHP Script.

如果一切正確無誤的話, 您應該可以看到以下的資料:

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

作者

本文件的作者為ernest (Chiang Deng-Wei), 我的email是 ernestch@ms2.url.com.tw , 若您對本文件有任何使用上的問題或建議, 歡迎您到PHP/Zend RC的php版來參與討論, 先在此竭誠的歡迎您. 衷心的希望本文件真能對phper有所幫助.



Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn