PHP データベース ODBC
ODBC はアプリケーション プログラミング インターフェース(Application Programming Interface、API)であり、データ ソース(たとえば MS Access データベース)に接続することを可能にします。
ODBC 接続の作成
ODBC 接続を使用すると、ODBC 接続が利用可能である限り、ネットワーク内の任意のコンピューターにある任意のデータベースに接続できます。
MS Access データベースへの ODBC 接続を作成する方法は次のとおりです。
- コントロールパネルで開きます管理ツールアイコン。
- その中の ... をダブルクリックしますデータソース (ODBC)アイコン。
- 選択しますシステム DSNタブ。
- システム DSN タブの ... をクリックします追加。
- 選択Microsoft Access Driver。クリックします完了。
- 次の画面で、クリックします選択データベースを指定します。
- データベースに名前を付けますデータソース名 (DSN)。
- クリックします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>
その他の拡張