PHP での IBM データ・サーバー・データベースへの接続 (ibm_db2)

SQL ステートメントを発行してデータの作成、更新、削除、または検索を行うには、その前に PHP アプリケーションからデータベースに接続する必要があります。 ibm_db2 API を使用して、カタログ式接続または直接 TCP/IP 接続のいずれかを介して IBM データ・サーバー・データベースに接続できます。 パフォーマンスを改善するために、持続的な接続を作成することもできます。

始める前に

ibm_db2 拡張機能を使用して IBM データ・サーバー・データベースに接続する前に、ご使用のシステムで PHP 環境をセットアップし、 ibm_db2 拡張機能を有効にする必要があります。

プロシージャー

SQL ステートメントの呼び出しに使用できる接続リソースを戻すには、リストされた接続関数のいずれかを呼び出します。
表 1. ibm_db2 接続関数
関数 説明
db2_connect 非持続的な接続を作成します。
db2_pconnect 持続的な接続を作成します。 持続的な接続は複数の PHP 要求にまたがって開いたままになります。 このため、資格情報のセットが同じであれば、後続の PHP スクリプト要求で接続を再利用することができます。

これらの関数に引数として渡されるデータベース値では、カタログ済みデータベース名、または直接 TCP/IP 接続用の完全なデータベース接続ストリングを指定できます。 トランザクションをコミットするタイミング、戻される列名の大/小文字の区別、カーソル・タイプなどを制御するオプションの引数を指定できます。

接続の試行が失敗した場合は、db2_conn_error または db2_stmt_errormsg 関数を呼び出すことによって診断情報を取得できます。

db2_connect 関数を呼び出して接続を作成する場合、リストされたイベントのいずれかの状況が発生すると、PHP はデータベースへの接続を閉じます。

  • 接続に対して db2_close 関数が呼び出された
  • 接続リソースが NULL に設定された
  • PHP スクリプトが完了した

db2_pconnect 関数を呼び出して接続を作成する場合、PHP は指定された接続リソースに対する db2_close 関数の呼び出しをすべて無視し、それ以後の PHP スクリプトに対してデータベースへの接続を常に開いたままにします。

ibm_db2 API について詳しくは、 http://www.php.net/docs.phpを参照してください。

カタログしたデータベースに接続します。

<?php
$database = "sample";
$user = "db2inst1";
$password = "";

$conn = db2_connect($database, $user, $password);

if ($conn) {
echo "Connection succeeded.";
db2_close($conn);
}
else {
echo "Connection failed.";
}
?> 

次の作業

接続の試行が成功した場合は、SQL ステートメントを実行する ibm_db2 関数の呼び出し時に接続リソースを使用できます。 次に、SQL ステートメントを準備および実行します。