CakeFest 2024: The Official CakePHP Conference

IBM 関数 (PDO_IBM)

はじめに

PDO_IBM は PHP Data Objects (PDO) インターフェイスを実装したドライバで、 PHP から IBM のデータベースにアクセスできるようになります。

インストール手順

PDO_IBM 拡張モジュールをビルドするには、DB2 クライアントの v9.1 以降がシステムにインストールされている必要があります。 DB2 クライアントは、IBM の » Application Development Site からダウンロードできます。

注意: 注意

DB2 クライアント v9.1 以降では、DB2 for Linux、 UNIX および Windows の v8、v9.1 サーバーへの直接接続がサポートされています。

DB2 クライアント v9.1 は、DB2 UDB for i5 および DB2 UDB for z/OS servers への接続もサポートしています。この接続には、 別途 » DB2 Connect product を購入します。

PDO_IBM は » PECL 拡張モジュールです。 PECL 拡張モジュールのインストール の手順に従って PDO_IBM 拡張モジュールをインストールします。configure コマンドを発行し、 DB2 クライアントのヘッダファイルやライブラリの位置を以下のように指定します。

bash$ ./configure --with-pdo-ibm=/path/to/sqllib[,shared]
configure コマンドは、デフォルトでは環境変数 DB2DIR の値を使用します。

実行時設定

php.ini の設定により動作が変化します。

PDO_IBM の設定オプション
名前 デフォルト 変更可能 変更履歴
pdo_ibm.i5_dbcs_alloc "0" INI_SYSTEM PDO_IBM 1.5.0 で追加
pdo_ibm.i5_override_ccsid "0" INI_SYSTEM PDO_IBM 1.5.0 で追加
INI_* モードの詳細および定義については どこで設定を行うのか を参照してください。

以下に設定ディレクティブに関する 簡単な説明を示します。

pdo_ibm.i5_dbcs_alloc int

IBM i 上ででの内部バッファを確保する戦略に影響します。 デフォルトでは、このオプションは 0です。 このオプションを設定すると、 エンコーディングを変換する際に文字サイズをデータベースが誤解した場合に備えて、 より大きなバッファサイズを確保します。 このオプションは(UTF-8 のありうる最大サイズを考慮して) 6倍大きなメモリを使いますが、 切り捨てられたデータを返す場合に必要な場合があります。

  • 0 - 最小サイズのバッファを確保します

  • 1 - より大きなサイズのバッファを確保します

pdo_ibm.i5_override_ccsid int

IBM i 上の EBCDIC からの変換に使う ASCII CCSID。 この値を 1208 に設定すると、UTF-8 を使います。 デフォルトでは、この値は 0 です。 この場合、デフォルトの ASCII job CCSID を選択します。

IBM i 上での CCSID について更に学ぶには、 » IBM documentation を調べて下さい。

目次

add a note

User Contributed Notes 1 note

up
0
jwoehr at softwoehr dot com
1 year ago
Connecting to IBM i (called "i5" above in the article) Db2 is usually simpler using PDO_ODBC with the IBM i ODBC driver for IBM i itself, Windows, Linux, or Mac, all free to download ... see https://www.ibm.com/support/pages/odbc-driver-ibm-i-access-client-solutions
To Top