PHP Database ODBC-4.10PHP 數(shù)據(jù)庫

閱讀 ?·? 發(fā)布日期 2019-06-28 18:45 ?·? admin

ODBC 是一種應(yīng)用程序編程接口(Application Programming Interface,API),使我們有能力連接到某個數(shù)據(jù)源(比如一個 MS Access 數(shù)據(jù)庫)。

創(chuàng)建 ODBC 連接

通過一個 ODBC 連接,您可以連接到您的網(wǎng)絡(luò)中的任何計算機上的任何數(shù)據(jù)庫,只要 ODBC 連接是可用的。

這是創(chuàng)建到達 MS Access 數(shù)據(jù)的 ODBC 連接的方法:

  1. 在控制面板中打開管理工具
  2. 雙擊其中的數(shù)據(jù)源 (ODBC) 圖標
  3. 選擇系統(tǒng) DSN 選項卡
  4. 點擊系統(tǒng) DSN 選項卡中的“添加”按鈕
  5. 選擇 Microsoft Access Driver。點擊完成。
  6. 在下一個界面,點擊“選擇”來定位數(shù)據(jù)庫。
  7. 為這個數(shù)據(jù)庫取一個數(shù)據(jù)源名 (DSN)。
  8. 點擊確定。

請注意,必須在您的網(wǎng)站所在的計算機上完成這個配置。如果您的計算機上正在運行 Internet 信息服務(wù)器 (IIS),上面的指令會生效,但是假如您的網(wǎng)站位于遠程服務(wù)器,您必須擁有對該服務(wù)器的物理訪問權(quán)限,或者請您的主機提供商為您建立 DSN。

連接到 ODBC

odbc_connect() 函數(shù)用于連接到 ODBC 數(shù)據(jù)源。該函數(shù)有四個參數(shù):數(shù)據(jù)源名、用戶名、密碼以及可選的指針類型參數(shù)。

odbc_exec() 函數(shù)用于執(zhí)行 SQL 語句。

例子

下面的例子創(chuàng)建了到達名為 northwind 的 DSN 的連接,沒有用戶名和密碼。然后創(chuàng)建并執(zhí)行一條 SQL 語句:

$conn=odbc_connect('northwind','','');
$sql="SELECT * FROM customers"; 
$rs=odbc_exec($conn,$sql);

取回記錄

odbc_fetch_row() 函數(shù)用于從結(jié)果集中返回記錄。如果能夠返回行,則返回 true,否則返回 false。

該函數(shù)有兩個參數(shù):ODBC 結(jié)果標識符和可選的行號:

odbc_fetch_row($rs)

從記錄中取回字段

odbc_result() 函數(shù)用于從記錄中讀取字段。該函數(shù)有兩個參數(shù):ODBC 結(jié)果標識符和字段編號或名稱。

下面的代碼行從記錄中返回第一個字段的值:

$compname=odbc_result($rs,1); 

The code line below returns the value of a field called "CompanyName":

$compname=odbc_result($rs,"CompanyName");

關(guān)閉 ODBC 連接

odbc_close()函數(shù)用于關(guān)閉 ODBC 連接。

odbc_close($conn);

ODBC 實例

下面的例子展示了如何首先創(chuàng)建一個數(shù)據(jù)庫連接,然后是結(jié)果集,然后在 HTML 表格中顯示數(shù)據(jù)。

<html>
<body>

<?php
$conn=odbc_connect('northwind','','');
if (!$conn)
  {exit("Connection Failed: " . $conn);}
$sql="SELECT * FROM customers";
$rs=odbc_exec($conn,$sql);
if (!$rs)
  {exit("Error in SQL");}
echo "<table><tr>";
echo "<th>Companyname</th>";
echo "<th>Contactname</th></tr>";
while (odbc_fetch_row($rs))
{
  $compname=odbc_result($rs,"CompanyName");
  $conname=odbc_result($rs,"ContactName");
  echo "<tr><td>$compname</td>";
  echo "<td>$conname</td></tr>";
}
odbc_close($conn);
echo "</table>";
?>

</body>
</html>