PDO ドライバ
PHP Manual

CUBRID 関数 (PDO_CUBRID)

導入

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]
configure コマンドはデフォルトで、環境変数 CUBRID の値を使います。

この PECL 拡張モジュールの DLL は、現在存在しません。 Windows でのビルド も参照ください Linux や Windows への手動でのインストールに関する詳細な情報は、 PECL の CUBRID パッケージに含まれる build-guide.html を参照ください。

機能

PDO_CUBRID の機能
機能 説明
スクロール可能なカーソル 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 を無効にする前に、それまでの作業は自動的にコミットされることに注意しましょう。

複数クエリ PDO_CUBRID は複数クエリをサポートしています。
スキーマ情報 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
$fp 
fopen('lob_test.png''rb');

$sql_stmt "INSERT INTO lob_test(name, content) VALUES('lob_test.png', ?)";

$stmt $dbh->prepare($sql_stmt);
$ret $stmt->bindParam(1$fpPDO::PARAM_LOB);
$ret $stmt->execute();
?>

例3 CUBRID PDO での LOB の取得

<?php
$sql_stmt 
"SELECT content FROM lob_test WHERE name='lob_test.png'";

$stmt $dbh->prepare($sql_stmt);
$stmt->execute();
$result $stmt->fetch(PDO::FETCH_NUM);

header("Content-Type: image/png");
fpassthru($result[0]);
?>

定義済み定数

このドライバでは以下の定数が定義されて います。これは拡張モジュールが PHP に組み込まれているか、実行時に動的にロード されている場合のみ使用可能です。さらに、これらのドライバ固有の定数は そのドライバを使用している場合にのみ使用されます。 あるドライバ固有の属性を別のドライバで使うと、予期せぬ結果を引き起こします。 もし複数のドライバを使用しているコードを実行している場合、 PDO::getAttribute()PDO_ATTR_DRIVER_NAME 属性を使用することで、使用中のドライバ名を調べることが可能です。

これらの定数を使ってスキーマ情報を取得します。これらの定数は PDO::cubrid_schema() に渡します。

PDO::CUBRID スキーマフラグ
定数 説明
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 ふたつのテーブルの参照関係を取得します。

目次


PDO ドライバ
PHP Manual