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

# CVII. ODBC および DB2 関数 (PDO_ODBC)

# 導入

PDO_ODBC は PHP Data Objects (PDO) インターフェイスを実装したドライバで、 PHP から ODBC ドライバあるいは IBM DB2 Call Level Interface (DB2 CLI) ライブラリを使用した データベースへのアクセスが可能となります。 PDO_ODBC は、現在 3 種類のデータベースドライバをサポートしています。

ibm-db2

  DB2 クライアントを使用した、 IBM DB2 Universal Database、Cloudscape および Apache Derby サーバへのアクセスをサポートします。

unixODBC

  unixODBC ドライバマネージャおよびデータベースごとの ODBC ドライバを使用した、データベースサーバへのアクセスをサポートします。

generic

  PDO_ODBC が明示的にサポートしていない ODBC ドライバマネージャのためのコンパイルオプションを提供します。

Windows では、PDO_ODBC はデフォルトで PHP コアに組み込まれています。 これは Windows ODBC ドライバマネージャに対してリンクされており、 システムの DSN に登録されているあらゆるデータベースに対して PHP から接続することができます。Microsoft SQL Server データベースに接続する際には、このドライバの使用を推奨します。

# インストール手順

UNIX システムでの PDO_ODBC

1. PHP 5.1 では、PDO_ODBC は PHP ソースの中に含まれています。 PDO_ODBC 拡張モジュールを静的モジュールあるいは共有モジュールとして コンパイルするには次のような configure コマンドを実行します。

   ibm_db2

         ./configure --with-pdo-odbc=ibm-db2,/opt/IBM/db2/V8.1/

     PDO_ODBC を ibm-db2 形式でビルドするには、PDO_ODBC をコンパイルするのと同じマシンに DB2 アプリケーション開発用ヘッダが インストールされていなければなりません。DB2 アプリケーション開発ヘッダは DB2 サーバのインストールオプションに 含まれており、また IBM DB2 Universal Database の サポートサイト からフリーでダウンロードできる DB2 Application Development Client にも含まれています。

     configure コマンドに DB2 ライブラリおよび ヘッダの場所を指定しなかった場合は、PDO_ODBC はデフォルトとして `/home/db2inst1/sqllib` を使用します。

   unixODBC

         ./configure --with-pdo-odbc=unixODBC,/usr/local

     configure コマンドに unixODBC ライブラリおよび ヘッダの場所を指定しなかった場合は、PDO_ODBC はデフォルトとして `/usr/local` を使用します。
   generic

         ./configure --with-pdo-odbc=generic,/usr/local,libname,ldflags,cflags

# 実行時設定

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

表 1. PDO_ODBC 設定オプション

名前 | デフォルト | 変更の可否 | 変更履歴
--- | --- | --- | ---
pdo_odbc.connection_pooling | "strict" | PHP_INI_ALL | PHP 5.1.0 以降で使用可能です。
pdo_odbc.db2instance_name | `NULL` | PHP_INI_SYSTEM |

PHP_INI_* 定数の詳細および定義については 付録G を参照してください。

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

`pdo_odbc.connection_pooling` string

  ODBC 接続のプール方法を指定します。"strict"、"relaxed" あるいは "off" ("" と同じ) のいずれかです。このパラメータは、 プールされている既存の接続との比較をどの程度厳密に行うのかを 接続マネージャに指定します。 `strict` は推奨されているデフォルト設定で、 接続パラメータが完全に一致する場合にのみ既存の接続を使用します。 `relaxed` は、接続パラメータが似ている場合に 既存の接続を使用します。これはキャッシュの再利用率を高めますが、 (例えば) 仮想ホスト間での接続情報がおかしくなってしまう恐れがあります。

  この設定は `php.ini` ファイルでのみ変更可能で、 その内容はプロセス全体に影響します。同じ ODBC ライブラリを使用している すべてのモジュール、たとえば Unified ODBC 拡張モジュール などが影響を受けます。

  警告
  `relaxed` を共有サーバで使用してはいけません。 これはセキュリティの問題があるためです。

  > ティップ: どうしても変更する必要がない限り、この設定はデフォルトの `strict` のままにしておきましょう。

`pdo_odbc.db2instance_name` string

  `db2` 方式で PDO_ODBC をコンパイルした場合、 Linux および UNIX 上で DB2 インスタンスを指定するための環境変数 DB2INSTANCE の値を設定します。これによって PDO_ODBC が DB2 ライブラリの場所を見つけられるようになり、 DB2 データベースへのカタログ接続が可能になります。

  この設定は `php.ini` ファイルでのみ変更可能で、 その内容はプロセス全体に影響します。同じ ODBC ライブラリを使用している すべてのモジュール、たとえば Unified ODBC 拡張モジュール などが影響を受けます。

  この設定は、Windows 上では何の意味も持ちません。

前のページ | ホーム | 次のページ
odbc_tables | 上に戻る | PDO_ODBC DSN