如何操作ODBC


<?php
  $User = "Dana";
  $Pass = "123456";
  $ODBC = "TEST_DB";

  $SQL = "SELECT ACCOUNT, NAME FROM V2_ACCOUNT";
  if(!($DBLinkID = odbc_connect($ODBC, $User, $Pass))) {
    echo "無法連接ODBC所設定的資料庫!";
    exit();
  }

  $ResultID = odbc_exec($DBLinkID, $SQL);
  if (!$ResultID) {
    echo "SQL語法有誤!";
    odbc_close($DBLinkID);
    exit();
  }

  // 取出資料
  $num = 0;
  while ($TableRow = odbc_fetch_row($ResultID)) {
    echo odbc_result($ResultID, 1);
    echo " ";
    echo odbc_result($ResultID, 2);
    echo "<br>";
  }

  odbc_close($DBLinkID);
?>
資料庫內容:
欄位名ACCOUNTNAME
1cow牛牛
2dana娜娜
3guest訪客
函式:
  1. odbc_connect("ODBC設定", "帳號", "密碼")
    連結ODBC的設定,並傳回一個連結ID(MySQL-Link);接下來要執行的SQL均需此連結ID。
  2. mysql_query("連結ID", "SQL指令")
    執行SQL指令,並將結果放入集合ID。
  3. odbc_fetch_row("集合ID")
    取得資料列,並用 odbc_result() 取得各欄資料。
  4. odbc_result("集合ID", 欄位#)
    取得資料列中,第幾個欄位的值
  5. odbc_close("連結ID")
    關閉與ODBC的連結。
說明:
  1. $ODBC:ODBC設定
  2. $User:可以進入ODBC所連上資料庫的帳號。
  3. $Pass:上述帳號的密碼。
  4. 先使用odbc_connect()連結資料庫,並會回傳一個連結ID(MySQL-Link),若傳回值為零(0)表示連結失敗。
  5. 再使用mysql_query()執行SQL指令,並將結果回傳集合內,若傳回值為零(0)表示指令執行失敗。
  6. 用odbc_fetch_row()將集合內的資料,一列一列的方式讀出,並使用odbc_result()開始讀取各個欄位的值。
    用while()判斷,直到集合結束。
  7. 最後用odbc_close()結束伺服器。
  8. SQL指令請參閱「SQL筆記區」。
除錯:
  1. Warning: SQL error: [Microsoft][ODBC 驅動程式管理員] 找不到資料來源名稱且未指定預設的驅動程式, SQL state IM002 in SQLConnect in a.php on line 7
    在檔案a.php的第7行,連結ODBC失敗。
  2. Warning: SQL error: [Microsoft][ODBC Microsoft Access Driver] 參數太少,預期個數 1。, SQL state 07001 in SQLExecDirect in a.php on line 12
    在檔案a.php的第12行,執行SQL失敗,請檢查SQL語法。
  3. Warning: Supplied argument is not a valid ODBC-Link resource in a.php on line 12
    在檔案Fa.php的第12行,因ODBC-Link不存在,所以無法執行SQL。
  4. 本頁所有指令僅適用於 ODBC ,其他資料庫操作請參照函式庫說明。

作者:Dana, cowwu@ms15.hinet.net, 2004/03/11
本文章公開於個人網站 http://www.dana.idv.tw
Home Copyright © Shu-Chen Wu