php.ini の設定により動作が変化します。
| 名前 | デフォルト | 変更可能 | 変更履歴 |
|---|---|---|---|
| ibm_db2.binmode | "1" | INI_ALL |
|
| ibm_db2.i5_all_pconnect | "0" | INI_SYSTEM |
ibm_db2 1.6.5 以降で利用可能 |
| ibm_db2.i5_allow_commit | "0" | INI_SYSTEM |
ibm_db2 1.4.9 以降で利用可能 |
| ibm_db2.i5_blank_userid | "0" | INI_SYSTEM |
ibm_db2 1.9.7 以降で利用可能 |
| ibm_db2.i5_char_trim | "0" | INI_SYSTEM |
ibm_db2 2.1.0 以降で利用可能 |
| ibm_db2.i5_dbcs_alloc | "0" | INI_SYSTEM |
ibm_db2 1.5.0 以降で利用可能 |
| ibm_db2.i5_guard_profile | "0" | INI_SYSTEM |
ibm_db2 1.9.7 以降で利用可能 |
| ibm_db2.i5_ignore_userid | "0" | INI_SYSTEM |
ibm_db2 1.8.0 以降で利用可能 |
| ibm_db2.i5_job_sort | "0" | INI_SYSTEM |
ibm_db2 1.8.4 以降で利用可能 |
| ibm_db2.i5_log_verbose | "0" | INI_SYSTEM |
ibm_db2 1.9.7 以降で利用可能 |
| ibm_db2.i5_max_pconnect | "0" | INI_SYSTEM |
ibm_db2 1.9.7 以降で利用可能 |
| ibm_db2.i5_override_ccsid | "0" | INI_SYSTEM |
ibm_db2 1.9.7 以降で利用可能 |
| ibm_db2.i5_servermode_subsystem | NULL | INI_SYSTEM |
ibm_db2 1.9.7 以降で利用可能 |
| ibm_db2.i5_sys_naming | "0" | INI_SYSTEM |
ibm_db2 1.9.7 以降で利用可能 |
| ibm_db2.instance_name | NULL | INI_SYSTEM |
ibm_db2 1.0.2 以降で利用可能 |
以下に設定ディレクティブに関する 簡単な説明を示します。
ibm_db2.binmode
int
このオプションは、バイナリデータを PHP アプリケーションで 使用する際のモードを制御します。
ibm_db2.i5_all_pconnect
int
このオプションは、IBM i 上での接続を強制的にすべて持続的接続にします。
基本的に、すべての db2_connect()
関数のコールは透過的に db2_pconnect()
のコールになります。
デフォルトでは、このオプションの値は 0 です。
このオプションは、持続的接続が高速な場合のために便宜上提供されています。
新しいアプリケーションでは、このオプションを使うべきではありません。
ibm_db2.i5_allow_commit
int
このオプションは、トランザクションの分離レベルを制御します。
デフォルトでは、このオプションの値は 0 です。
よって、コミットの制御は使いません。
このオプションは、配列のキー i5_commit
を接続オプションの配列に設定し、
db2_connect() や
db2_pconnect() に渡すことで上書きできます。
ibm_db2.i5_blank_userid
int
IBM i 上で空のユーザーIDを許可すべきかどうかを制御します。
デフォルトでは、このオプションの値は 0 です。
ibm_db2.i5_ignore_userid と異なり、
このオプションはすべてのユーザーIDを強制的に空にしたり、
ジョブの振る舞いを変えたりはしません。
ただ単に、Db2 に現在のユーザーとしてする際、
空のユーザーIDを渡すことを許可するだけです。
ibm_db2.i5_char_trim
int
このオプションは、IBM i における文字列の右端をトリム処理するかを制御します。
多くのテーブルは固定のカラムサイズを持ち、スペースで埋められているため、
このオプションが便宜のため提供されています。
デフォルトでは、このオプションの値は 0 です。
ibm_db2.i5_dbcs_alloc
int
このオプションは、IBM i における内部バッファの割当て戦略に影響します。
デフォルトでは、このオプションの値は 0 です。
このオプションを設定した場合、
エンコーディング変換時にデータベースが文字列サイズを過小評価した場合に備えて、
さらに大きなサイズのバッファが割り当てられます。
このオプションはバッファ用に6倍のメモリを使用します(最大サイズのUTF-8シーケンスに対応するため)。
切り詰められたデータが返される場合に必要となる可能性があります。
ibm_db2.i5_guard_profile
int
IBM i 上のデータベースに持続的接続する際、
ユーザーのデータベースのプロファイルを切り替えるかどうかをチェックします。
切り替える場合、データベースから切断します。
デフォルトでは、このオプションの値は 0 です。
ibm_db2.i5_log_verbose
int
このオプションは、
IBM i 上で 警告やエラーなどのSQL診断メッセージを、
常に PHP のエラーログに送信するかどうかを設定します。
通常、このオプションはデフォルトで 0 に設定されているため、
失敗時には簡潔なメッセージ(例:「ステートメントの実行に失敗しました」)のみが
PHP のエラーログに送信されます。
ただし、関数が失敗したかどうかを確認する目的で
db2_stmt_errormsg() を手動で呼び出すことができますし、
またそうすべきである点に注意してください。
ibm_db2.i5_ignore_userid
int
IBM i 上で実行される際、かつデータベースに接続する際に、
このオプションはユーザーID を無視します。
また、別々のジョブではなく、PHPジョブの内部でSQL/CLI の機能を実行します。
デフォルトでは、このオプションの値は 0 です。
このオプションを有効にすると、
別々のデータベースサーバーのジョブを使わず、
常に現在のユーザープロファイルを使います。
そして、db2_connect() と db2_pconnect()
に渡されるユーザー名とパスワードを無視します。
ibm_db2.i5_job_sort
int
IBM i におけるジョブソートを制御します。
デフォルトでは、このオプションの値は 0 です。
これは IBM i SQL/CLI の SQL_ATTR_CONN_SORT_SEQUENCE
属性に対応します。
*HEX ソートオプションを使い、
バイト単位でソートを行います。
ibm_db2.i5_max_pconnect
int
0 です。
つまり、持続的接続は常に再利用されるということです。
このオプションは、
長時間実行されるデータベースのジョブで起こる問題
(つまり、プロシージャでメモリリークが起きた場合など)
を回避されるのに役立ちますが、明らかに長期的に役立つものではないでしょう。
ibm_db2.i5_override_ccsid
int
0 であり、
PASE ロケール設定から取得されるデフォルトの PASE ジョブ CCSID を選択します。
たとえば、これを 1208 に設定すると UTF-8 を使用します。
この値は、PASE ジョブの CCSID が期待される CCSID と異なる場合、
かつロケールを変更できない場合にのみ変更してください。
IBM i 上の CCSID についてさらに学ぶ場合は、
» IBM documentation を調べてください。
IBM i 上の PASE がどのように CCSID にマップされているかについては、
» IBM documentation を調べてください。
ibm_db2.i5_sys_naming
int
このオプションは、IBM i システムに接続する際の命名モードを制御します。
デフォルトでは、このオプションの値は 0 です。
命名モードは、名前の解決方法と名前に許可される構文に影響します。
0 に設定すると、名前の修飾にピリオドを使用し、
名前解決にはデフォルトのライブラリまたはユーザーIDを使用します。
1 に設定すると、名前の修飾にスラッシュを使用し、
名前解決にはジョブライブラリリストを使用します。
ibm_db2.i5_servermode-subsystem
string
null であるため、
ジョブは QSQSRVR ジョブのデフォルトサブシステムで実行されます。
ibm_db2.instance_name
string
Linux や UNIX オペレーティングシステムにおいて、
このオプションはカタログされたデータベースへの接続で使う、
インスタンス名を定義します。
デフォルトでは、このオプションの値は null です。
このオプションを設定すると、
環境変数 DB2INSTANCE の値を上書きします。