PHP データベース ODBC


ODBC はアプリケーション プログラミング インターフェース(Application Programming Interface、API)であり、データ ソース(たとえば MS Access データベース)に接続することを可能にします。


ODBC 接続の作成

ODBC 接続を使用すると、ODBC 接続が利用可能である限り、ネットワーク内の任意のコンピューターにある任意のデータベースに接続できます。

MS Access データベースへの ODBC 接続を作成する方法は次のとおりです。

  1. コントロールパネルで開きます管理ツールアイコン。
  2. その中の ... をダブルクリックしますデータソース (ODBC)アイコン。
  3. 選択しますシステム DSNタブ。
  4. システム DSN タブの ... をクリックします追加。
  5. 選択Microsoft Access Driver。クリックします完了。
  6. 次の画面で、クリックします選択データベースを指定します。
  7. データベースに名前を付けますデータソース名 (DSN)。
  8. クリックしますOK。

この構成は、Web サイトが置かれているコンピューター上で行う必要があることに注意してください。お使いのコンピューターでインターネット インフォメーション サービス (IIS) が実行されている場合、上記の手順は機能します。ただし、Web サイトがリモート サーバー上にある場合は、そのサーバーへの物理的なアクセス権が必要です。または、ホスティングプロバイダーに DSN の作成を依頼してください。


ODBC への接続

odbc_connect() 関数は ODBC データソースに接続するために使用されます。この関数には 4 つのパラメーターがあります: データソース名、ユーザー名、パスワード、およびオプションのカーソルタイプ。

odbc_exec() 関数は SQL ステートメントを実行するために使用されます。

実例

次の実例は、ユーザー名とパスワードなしで northwind という名前の DSN への接続を作成します。次に、SQL ステートメントを作成して実行します。

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


レコードの取得

odbc_fetch_row() 関数は、結果セットからレコードを返すために使用されます。行を返すことができる場合は true を返し、それ以外の場合は false を返します。

この関数には 2 つのパラメーターがあります: ODBC 結果識別子とオプションの行番号です。

odbc_fetch_row($rs)


レコードからフィールドを取得する

odbc_result() 関数は、レコードからフィールドを読み取るために使用されます。この関数には 2 つのパラメーターがあります: ODBC 結果識別子とフィールド番号または名前です。

次のコード行は、レコードから最初のフィールドの値を返します。

$compname=odbc_result($rs,1);

次のコード行は、"CompanyName" という名前のフィールドの値を返します。

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


ODBC 接続を閉じる

odbc_close() 関数は ODBC 接続を閉じるために使用されます。

odbc_close($conn);


ODBC 実例

次の実例は、最初にデータベース接続を作成し、次に結果セットを作成し、その後に HTML テーブルにデータを表示する方法を示しています。

<html>
<body>

<?php
$conn=odbc_connect('northwind','','');
if (!$conn)
{
    exit("连接失败: " . $conn);
}

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

if (!$rs)
{
    exit("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>
その他の拡張