PHP マニュアル
前のページ |  | 次のページ

# LVIII. IBM DB2、Cloudscape および Apache Derby 関数

# 導入

これらの関数により、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 ゲートウェイソフトウェアも必要となります。

## Linux あるいは Unix についての要件

これらの関数を使用する前には、PHP 実行ファイルあるいは SAPI を実行するユーザで DB2 インスタンスを指定する必要があります。 `php.ini` で `ibm_db2.instance_name` を使用して DB2 インスタンス名を指定するか、 PHP 実行ファイルの起動前に DB2 インスタンスプロファイルを 読み込むことができます。

例えば、`db2inst1` という名前の DB2 インスタンスを `/home/db2inst1/` に作成した場合には `php.ini` に以下の行を追加します。

    ibm_db2.instance_name=db2inst1

`php.ini` にこれを指定しない場合は、 DB2 へのアクセス用の環境変数を設定するために 以下のコマンドを実行しなければなりません。

    bash$ source /home/db2inst1/sqllib/db2profile

PHP が使用できる Web サーバからこれらの関数を使用するには、 `php.ini` で `ibm_db2.instance_name` を設定するか、 Web サーバの起動スクリプト (`/etc/init.d/httpd` あるいは `/etc/init.d/apache` であることが多いでしょう) で DB2 インスタンス環境変数を読み込む必要があります。

# インストール手順

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

configure コマンドのデフォルト値は `/opt/IBM/db2/V8.1` となっています。

# 実行時設定

`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` string

  Linux および UNIX では、カタログデータベースへの接続に使用する インスタンス名をこのオプションで指定します。 このオプションは、環境変数 DB2INSTANCE の設定を上書きします。

  Windows では、このオプションは無視されます。

# 定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。

`DB2_BINARY` (integer)

  バイナリデータをそのままの形式で返します。デフォルトのモードです。

`DB2_CONVERT` (integer)

  バイナリデータを十六進表現にエンコードし、ASCII 文字列として返します。

`DB2_PASSTHRU` (integer)

  バイナリデータを `NULL` 値に変換します。

`DB2_SCROLLABLE` (integer)

  ステートメントのリソースとして、スクロール可能なカーソルを指定します。 このモードでは結果セット内の行へのランダムアクセスが可能となりますが、 現在は IBM DB2 Universal Database でしかサポートされていません。

`DB2_FORWARD_ONLY` (integer)

  ステートメントのリソースとして、前進のみ可能なカーソルを指定します。 これはデフォルトのカーソル型であり、 すべてのデータベースサーバでサポートされています。

`DB2_PARAM_IN` (integer)

  PHP 変数を、ストアドプロシージャの IN パラメータとしてバインドします。

`DB2_PARAM_OUT` (integer)

  PHP 変数を、ストアドプロシージャの OUT パラメータとしてバインドします。

`DB2_PARAM_INOUT` (integer)

  PHP 変数を、ストアドプロシージャの INOUT パラメータとしてバインドします。

`DB2_PARAM_FILE` (integer)

  カラムを直接ファイルにバインドし、そのデータを読み込みます。

`DB2_AUTOCOMMIT_ON` (integer)

  自動コミットを有効にします。

`DB2_AUTOCOMMIT_OFF` (integer)

  自動コミットを無効にします。

`DB2_DOUBLE` (integer)

  変数を、データ型 DOUBLE、FLOAT あるいは REAL にバインドします。

`DB2_LONG` (integer)

  変数を、データ型 SMALLINT、INTEGER あるいは BIGINT にバインドします。

`DB2_CHAR` (integer)

  変数を、データ型 CHAR あるいは VARCHAR にバインドします。

`DB2_CASE_NATURAL` (integer)

  カラム名の大文字小文字を変換せずに返します。

`DB2_CASE_LOWER` (integer)

  カラム名を小文字に変換して返します。

`DB2_CASE_UPPER` (integer)

  カラム名を大文字に変換して返します。

# リソース型

ibm_db2 拡張モジュールは、接続リソース・ステートメントリソース および結果セットリソースを返します。

前のページ | ホーム | 次のページ
PDO_IBM DSN | 上に戻る | db2_autocommit