PDO_CUBRID は PHP Data Objects (PDO) インターフェイス を実装したドライバで、PHP から CUBRID データベースにアクセスするためのものです。
注意:
現在のバージョンの PDO_CUBRID は、持続的接続に対応していません。
PDO_CUBRID 拡張モジュールをビルドするには、PHP を動かしているシステム上に CUBRID DBMS をインストールしなければなりません。 PDO_CUBRID は » PECL 拡張モジュールなので、 PECL 拡張モジュールのインストール の手順に従えば PDO_CUBRID をインストールできます。configure コマンドを実行するときに、次のようにして CUBRID のベースディレクトリの場所を指定します。
$ ./configure --with-pdo-cubrid=/path/to/CUBRID[,shared]
この PECL 拡張モジュールの DLL は、現在存在しません。 Windows でのビルド も参照ください Linux や Windows への手動でのインストールに関する詳細な情報は、 PECL の CUBRID パッケージに含まれる build-guide.html を参照ください。
機能 | 説明 |
---|---|
スクロール可能なカーソル | PDO_CUBRID はスクロール可能なカーソルをサポートしており、デフォルトの型は前進のみのカーソルです。 PDO::prepare() を使えばカーソルの型を変えることができます。 |
タイムアウト | PDO_CUBRID は sql ステートメントの実行時のタイムアウトの設定をサポートしています。 PDO::setAttribute() を使えばタイムアウトの値を設定できます。 |
Autocommit_mode およびトランザクション |
PDO_CUBRID は自動コミットとトランザクションをサポートしており、
自動コミットモードはデフォルトで有効になっています。
PDO::setAttribute() を使えば状態を変更することができます。
PDO::beginTransaction でトランザクションを開始すると autocommit_mode は無効となり、PDO::commit あるいは PDO::rollBack の後で元の状態に戻します。autocommit_mode を無効にする前に、それまでの作業は自動的にコミットされることに注意しましょう。 |
複数の SQL 文 | PDO_CUBRID は複数の SQL 文をサポートしています。 複数の SQL 文はセミコロン (;) で区切られます。 |
スキーマ情報 | PDO_CUBRID は PDOStatement->getColumnMeta を実装していません。 そのかわりに PDO_CUBRID では PDO::cubrid_schema() 関数を用意しており、これでスキーマ情報を取得します。 |
LOBs | PDO_CUBRID は BLOB/CLOB データ型をサポートしています。PDO における LOB
はストリームで表現されているので、LOB を追加するにはストリームをバインドし、
LOB を取得するには CUBRID PDO が返すストリームを読み込みます。
例2 CUBRID PDO での LOB の追加
<?php
例3 CUBRID PDO での LOB の取得
<?php |
このドライバでは以下の定数が定義されて います。これは拡張モジュールが PHP に組み込まれているか、実行時に動的にロード されている場合のみ使用可能です。さらに、これらのドライバ固有の定数は そのドライバを使用している場合にのみ使用されます。 あるドライバ固有の属性を別のドライバで使うと、予期せぬ結果を引き起こします。 もし複数のドライバを使用しているコードを実行している場合、 PDO::getAttribute() で PDO_ATTR_DRIVER_NAME 属性を使用することで、使用中のドライバ名を調べることが可能です。
これらの定数を使ってスキーマ情報を取得します。これらの定数は PDO::cubrid_schema() に渡します。
定数 | 説明 |
---|---|
PDO::CUBRID_SCH_TABLE | CUBRID のテーブルの名前と型を取得します。 |
PDO::CUBRID_SCH_VIEW | CUBRID のビューの名前と型を取得します。 |
PDO::CUBRID_SCH_QUERY_SPEC | ビューのクエリ定義を取得します。 |
PDO::CUBRID_SCH_ATTRIBUTE | テーブルのカラムの属性を取得します。 |
PDO::CUBRID_SCH_TABLE_ATTRIBUTE | テーブルの属性を取得します。 |
PDO::CUBRID_SCH_METHOD | インスタンスメソッドを取得します。インスタンスメソッドはクラスのインスタンスからコールされるメソッドです。 たいていの操作はインスタンス上で行われるので、クラスメソッドよりも頻繁に使います。 |
PDO::CUBRID_SCH_TABLE_METHOD | クラスメソッドを取得します。クラスメソッドはクラスオブジェクトからコールされるメソッドです。 新しいクラスのインスタンスを作ったり初期化したりするときによく使います。 また、クラスの属性にアクセスしたりそれを更新したりするときにも使います。 |
PDO::CUBRID_SCH_METHOD_FILE | テーブルのメソッドが定義されているファイルの情報を取得します。 |
PDO::CUBRID_SCH_SUPER_TABLE | このテーブルの属性の継承元のテーブルの名前と型を取得します。 |
PDO::CUBRID_SCH_SUB_TABLE | このテーブルの属性を継承しているテーブルの名前と型を取得します。 |
PDO::CUBRID_SCH_CONSTRAINT | 亭ブルの制約を取得します。 |
PDO::CUBRID_SCH_TRIGGER | テーブルのトリガーを取得します。 |
PDO::CUBRID_SCH_TABLE_PRIVILEGE | テーブルの権限情報を取得します。 |
PDO::CUBRID_SCH_COL_PRIVILEGE | カラムの権限情報を取得します。 |
PDO::CUBRID_SCH_DIRECT_SUPER_TABLE | 直接の親テーブルを取得します。 |
PDO::CUBRID_SCH_PRIMARY_KEY | テーブルの主キーを取得します。 |
PDO::CUBRID_SCH_IMPORTED_KEYS | テーブルのインポートしたキーを取得します。 |
PDO::CUBRID_SCH_EXPORTED_KEYS | テーブルのエクスポートしたキーを取得します。 |
PDO::CUBRID_SCH_CROSS_REFERENCE | ふたつのテーブルの参照関係を取得します。 |