これらの関数により、DB2 Call Level Interface (DB2 CLI) を使用した IBM DB2 Universal Database、IBM Cloudscape および Apache Derby データベースへのアクセスが可能となります。
IBM DB2 Universal Database for Linux・UNIX・Windows、 IBM Cloudscape、Apache Derby に接続するには、 PHP を稼動させるコンピュータ上に IBM DB2 Universal Database client がインストールされていなければなりません。 この拡張モジュールは、DB2 バージョン 8.2 を対象にして開発およびテストが行われています。
IBM DB2 Universal Database for z/OS・iSeries に接続するには、IBM DB2 Connect あるいはそれと同等の DRDA ゲートウェイソフトウェアも必要となります。
これらの関数を使用する前には、PHP 実行ファイルあるいは SAPI を実行するユーザで DB2 インスタンスを指定する必要があります。 php.ini で ibm_db2.instance_name を使用して DB2 インスタンス名を指定するか、 PHP 実行ファイルの起動前に DB2 インスタンスプロファイルを 読み込むことができます。
例えば、db2inst1 という名前の DB2 インスタンスを /home/db2inst1/ に作成した場合には php.ini に以下の行を追加します。
ibm_db2.instance_name=db2inst1 |
bash$ source /home/db2inst1/sqllib/db2profile |
ibm_db2 拡張モジュールをビルドするには、 DB2 アプリケーション開発用のヘッダファイルおよびライブラリが システムにインストールされていなければなりません。 これらのファイルはデフォルトではインストールされないので、 DB2 のインストーラをもう一度起動して このオプションを追加する必要があります。 IBM DB2 Universal Database の サポートサイト にてフリーで公開されている DB2 Application Development Client に、これらのヘッダファイルが含まれています。
既に DB2 がインストールされている Linux や Unix 上に DB2 アプリケーション開発用のヘッダおよびライブラリを追加した場合は、 DB2 インスタンス内のヘッダファイルやライブラリに対する シンボリックリンクを更新するため、 コマンド db2iupdt -e を実行しなければなりません。
ibm_db2 は PECL 拡張モジュールなので、 第7章 の手順にしたがって PHP にインストールすることができます。 まず、DB2 ヘッダファイルおよびライブラリの場所を指定するために 次のように configure コマンドを実行します。
bash$ ./configure --with-IBM_DB2=/path/to/DB2 |
IIS ユーザ向けの注意: ibm_db2 ドライバを Microsoft Internet Information Server (IIS) で使用する場合は、以下ようにする必要があります。
DB2 を、拡張オペレーティングセキュリティ (extended operating system security) つきでインストールします。 PHP のバイナリへのパス (デフォルトは C:\php\) を、システムの環境変数 PATH に追加します。 システムの環境変数をもうひとつ作成し、PHP.INI のある場所を指定します (例: PHPRC = C:\php\)。 IUSR_COMPUTERNAME を DB2USERS グループに追加します。
php.ini の設定により動作が変化します。
表 1. ibm_db2 設定オプション
名前 | デフォルト | 変更可能 | 変更履歴 |
---|---|---|---|
ibm_db2.binmode | "1" | PHP_INI_ALL | |
ibm_db2.i5_allow_commit | "0" | PHP_INI_SYSTEM | |
ibm_db2.i5_dbcs_alloc | "0" | PHP_INI_SYSTEM | |
ibm_db2.instance_name | NULL | PHP_INI_SYSTEM |
以下に設定ディレクティブに関する 簡単な説明を示します。
ibm_db2.binmode
integerこのオプションは、バイナリデータを PHP アプリケーションで 使用する際のモードを制御します。
1 (DB2_BINARY)
2 (DB2_CONVERT)
3 (DB2_PASSTHRU)
ibm_db2.i5_allow_commit
integerこのオプションは、i5 スキーマコレクションで使用するコミットモードを PHP アプリケーションで使用する際のモードを制御します。
0 はコミットしません (オーバーライドについては i5_commit を参照ください)。
1 はコミットを許可します (オーバーライドについては i5_commit を参照ください)。
ibm_db2.i5_dbcs_alloc
integerこのオプションは、ラージ DBCS カラムバッファ用の内部 ibm_db2 アロケーションスキームを制御します。
0 は拡張アロケーションを使用しません (オーバーライドについては i5_dbcs_alloc を参照ください)。
1 は拡張アロケーションを使用します (オーバーライドについては i5_dbcs_alloc を参照ください)。
ibm_db2.instance_name
stringLinux および UNIX では、カタログデータベースへの接続に使用する インスタンス名をこのオプションで指定します。 このオプションは、環境変数 DB2INSTANCE の設定を上書きします。
Windows では、このオプションは無視されます。
以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。
バイナリデータをそのままの形式で返します。デフォルトのモードです。
バイナリデータを十六進表現にエンコードし、ASCII 文字列として返します。
バイナリデータを NULL 値に変換します。
ステートメントのリソースとして、スクロール可能なカーソルを指定します。 このモードでは結果セット内の行へのランダムアクセスが可能となりますが、 現在は IBM DB2 Universal Database でしかサポートされていません。
ステートメントのリソースとして、前進のみ可能なカーソルを指定します。 これはデフォルトのカーソル型であり、 すべてのデータベースサーバでサポートされています。
PHP 変数を、ストアドプロシージャの IN パラメータとしてバインドします。
PHP 変数を、ストアドプロシージャの OUT パラメータとしてバインドします。
PHP 変数を、ストアドプロシージャの INOUT パラメータとしてバインドします。
カラムを直接ファイルにバインドし、そのデータを読み込みます。
自動コミットを有効にします。
自動コミットを無効にします。
変数を、データ型 DOUBLE、FLOAT あるいは REAL にバインドします。
変数を、データ型 SMALLINT、INTEGER あるいは BIGINT にバインドします。
変数を、データ型 CHAR あるいは VARCHAR にバインドします。
カラム名の大文字小文字を変換せずに返します。
カラム名を小文字に変換して返します。
カラム名を大文字に変換して返します。
指定したステートメントリソースについて、遅延プリペアを有効にします。
指定したステートメントリソースについて、遅延プリペアを無効にします。
ibm_db2 拡張モジュールは、接続リソース・ステートメントリソース および結果セットリソースを返します。