XCIX. PDO関数

導入

警告

このモジュールは、 実験的なものです。これは、これらの関数の動作、関 数名は、このドキュメントに書かれて事項と同様に告知なく将来的なPHPのリ リースで変更される可能性があります。注意を喚起するとともに、このモジュー ルは使用者のリスクで使用してください。

PHP Data Objects (PDO)エクステンションは、 PHPの中からデータベースにアクセスするための軽量で高性能な インターフェイスを定義します。 PDOインターフェイスを実装数各データベースドライバは、 正規表現関数のようなデータベース固有の機能を提供することができます。 PDOエクステンションによりそのデータベースの全てのデータベース関数を 実行できるわけではないことに注意してください。 データベースサーバにアクセスするには、 データベース固有のPDOドライバ を使用する必要があります。

インストール手順

Windows

使用するPDOドライバをインストールし、有効にするために 以下の手順に従ってください。

  1. Windowsのユーザは、このエクステンションDLL php_pdo.dllhttp://www.php.net/downloads.phpにある PECLコレクションバイナリの中からダウンロードすることができます。 もしくは、 PHP 5 PECL Snapshotからより最新のバージョンを取得することができます。

  2. PDOエクステンションをWindowsオペレーティングシステムで有効にするには、 以下の行をphp.iniに追加する必要があります。
    extension=php_pdo.dll

  3. 次に、他のDBのDLLファイルを選択し、 実行時にロードする場合はdl()、または、 php.inipdo_pdo.dllの下で有効にしてください。 例えば、
    extension=php_pdo.dll
    extension=php_pdo_firebird.dll
    extension=php_pdo_mssql.dll
    extension=php_pdo_mysql.dll
    extension=php_pdo_oci.dll
    extension=php_pdo_oci8.dll
    extension=php_pdo_odbc.dll
    extension=php_pdo_pgsql.dll
    extension=php_pdo_sqlite.dll

    これらのDLLは、システムのextension_dir で指定した場所に存在する必要があります。

Linux と UNIX

pearインストーラのバグのためにPDOパッケージを 以下の手順でマニュアルでインストールする必要があります。

選択するPDOドライバをインストール/有効にする手順も同じ手順で行ってください。

  1. ローカルマシンにPDOパッケージをダウンロードする
    bash$  wget http://pecl.php.net/get/PDO

  2. PHP bin ディレクトリを定義する。 PHP 5 CLIバイナリが/usr/local/php5/bin/phpに ある場合、binディレクトリは /usr/local/php5/binとなります。

  3. binディレクトリをパスの先頭に設定します。
    export PATH="/usr/local/php5/bin:$PATH"

  4. PDOエクステンションをマニュアルで構築し、インストールします。
    bash$ tar xzf PDO-0.2.tgz
    bash$ cd PDO-0.2
    bash$ phpize
    bash$ ./configure
    bash$ make
    bash$ sudo -s
    bash# make install
    bash# echo extension=pdo.so >> /usr/local/php5/lib/php.ini

PDOドライバ

以下のドライバが現在PDOインターフェイスを実装しています。

ドライバ名サポートされるデータベース
PDO_DBLIBFreeTDS / Microsoft SQL Server / Sybase
PDO_FIREBIRDFirebird/Interbase 6
PDO_MYSQLMySQL 3.x/4.0
PDO_OCIOracle Call Interface
PDO_ODBCODBC v3 (IBM DB2 と unixODBC)
PDO_PGSQLPostgreSQL
PDO_SQLITESQLite 3.x

定義済みのクラス

PDO

PHPとデータベースサーバの間の接続を表わします。

コンストラクタ

  • PDO - PDOオブジェクトのコンストラクタ

メソッド

  • beginTransaction - トランザクションを開始

  • commit - トランザクションを コミット

  • exec - SQLステートメント を発行し、作用された行の数を返す

  • errorCode - エラーが発生した場合に、データベースからエラーコードを取得する

  • errorInfo - エラーが発生した場合に、データベースからエラー情報の配列を取得します。

  • getAttribute - データベース接続属性を取得します

  • lastInsertId - テーブルに挿入された直近の行の値を取得します

  • prepare - SQLステートメントを実行するために準備します

  • rollBack - トランザクションをロールバックします

  • setAttribute - データベース接続属性を設定します

PDOStatement

プリペアドステートメントを表します。ステートメント実行後は関連する結果セットを 表します。

メソッド

  • bindColumn - PHP変数を結果セットの出力カラムにバインドします

  • bindParam - プリペアドステートメントのパラメータにPHP変数をバインドします

  • columnCount - 結果セットのカラム数を返します

  • errorCode - エラーが発生した場合、ステートメントからエラーコードを取得します

  • errorInfo - エラーが発生した場合、ステートメントからエラー情報の配列を取得します

  • execute - プリペアドステートメントを実行します

  • fetch - 結果セットから行を取得します

  • fetchAll - 結果セットからすべての行を含む配列を返します

  • fetchSingle - 結果セットの最初のカラムからデータを返します

  • getAttribute - PDOStatement属性を取得します

  • getColumnMeta - 結果セットのカラムのメタデータを取得します

  • nextRowset - 次の行セット (結果セット) を取得します

  • rowCount - SQLステートメントの実行により作用された行の数を返します

  • setAttribute - PDOStatement属性を設定します

  • setFetchMode - PDOStatementの取得モードを設定します

定義済みの定数

これらの定数は、この拡張モジュールで定義されており、 この拡張モジュールがPHP内部にコンパイルされているか実行時に動的にロー ドされるかのどちらかの場合のみ使用可能です。

PDO_PARAM_NULL (integer)

SQL NULLデータ型を表す。

PDO_PARAM_INT (integer)

SQL INTEGERデータ型を表す。

PDO_PARAM_STR (integer)

SQL CHAR, VARCHAR, または他の文字列データ型を表す。

PDO_PARAM_LOB (integer)

SQLラージオブジェクト型を表す。

PDO_PARAM_STMT (integer)

PDO_PARAM_INPUT_OUTPUT (integer)

パラメータがストアドプロシージャ用の入力パラメータであることを指定します。 この値は、PDO_PARAM_*データ型とのビットORとして指定する必要があります。

PDO_FETCH_LAZY (integer)

取得する方法として、 結果セットが返すカラム名と同じ名前の変数を有するオブジェクトとして各行を返す方法を 指定します。 PDO_FETCH_LAZY は、アクセスされたものと同じ名前のオブジェクト変数を作成します。

PDO_FETCH_ASSOC (integer)

結果セットの対応するカラム名にふられているものと同じキーを付けた 連想配列として各行を返す取得方法を指定します。

PDO_FETCH_NUM (integer)

結果セットの対応するカラム番号にふられているものと同じ添字を付けた 配列として各行を返す取得方法を指定します。番号は0から始まります。

PDO_FETCH_BOTH (integer)

結果セットと同じカラム名と0から始まるカラム番号を付けた配列として各行を返す 方法を指定します。

PDO_FETCH_OBJ (integer)

結果セットが返すカラム名と同じ名前のプロパティを有する オブジェクトとして各行を返す方法を指定します。

PDO_FETCH_BOUND (integer)

結果セットのカラムの値を PDOStatement::bindParam() または PDOStatement::bindColumn() メソッドでバインドされた PHP変数に代入し、TRUEを返すという取得方法を指定します。

PDO_FETCH_COLUMN (integer)

結果セットの次の行から指定された一つのカラムのみを返す取得方法を指定します。

PDO_FETCH_CLASS (integer)

カラムをクラスのプロパティにマップしつつ、 指定されたクラスの新規インスタンスを返す取得方法を指定します。

PDO_FETCH_INTO (integer)

カラムをクラスのプロパティにマップしつつ、 指定されたクラスの既存のインスタンスを更新する取得方法を指定します。

PDO_FETCH_FUNC (integer)

PDO_FETCH_GROUP (integer)

PDO_FETCH_UNIQUE (integer)

PDO_FETCH_CLASSTYPE (integer)

PDO_ATTR_AUTOCOMMIT (integer)

PDO_ATTR_PREFETCH (integer)

PDO_ATTR_TIMEOUT (integer)

PDO_ATTR_ERRMODE (integer)

PDO_ATTR_SERVER_VERSION (integer)

PDO_ATTR_CLIENT_VERSION (integer)

PDO_ATTR_SERVER_INFO (integer)

PDO_ATTR_CONNECTION_STATUS (integer)

PDO_ATTR_CASE (integer)

PDO_CASE_*で指定されたケースにカラム名を変更します。 constants.

PDO_ATTR_CURSOR_NAME (integer)

PDO_ATTR_CURSOR (integer)

PDO_ATTR_ORACLE_NULLS (integer)

PDO_ATTR_PERSISTENT (integer)

PDO_ERRMODE_SILENT (integer)

PDO_ERRMODE_WARNING (integer)

PDO_ERRMODE_EXCEPTION (integer)

PDO_CASE_NATURAL (integer)

カラム名をデータベースドライバにより返されたままにします。

PDO_CASE_LOWER (integer)

カラム名を小文字にします。

PDO_CASE_UPPER (integer)

カラム名を大文字にします。

PDO_FETCH_ORI_NEXT (integer)

結果セットの次の行を取得します。スクローラブルなカーソルでのみ有効です。

PDO_FETCH_ORI_PRIOR (integer)

結果セットの前の行を取得します。スクローラブルなカーソルでのみ有効です。

PDO_FETCH_ORI_FIRST (integer)

結果セットの先頭の行を取得します。スクローラブルなカーソルでのみ有効です。

PDO_FETCH_ORI_LAST (integer)

結果セットの最後の行を取得します。スクローラブルなカーソルでのみ有効です。

PDO_FETCH_ORI_ABS (integer)

結果セットから行番号で指定した行を取得します。スクローラブルなカーソルでのみ有効です。

PDO_FETCH_ORI_REL (integer)

結果セットのカーソルの現在の位置を基準とする相対位置により指定された行を 取得します。スクローラブルなカーソルでのみ有効です。

PDO_CURSOR_FWDONLY (integer)

前進のみ可能なカーソルを有するPDOStatementオブジェクトを生成します。 これにより、アプリケーションの性能は改善しますが、 PDOStatementオブジェクトは前方にある結果セットから一度に一行を 取得するという制約を受けます。

PDO_CURSOR_SCROLL (integer)

スクローラブルカーソルを有するPDOStatementオブジェクトを作成しあす。 結果セットから取得した行を制御するためのPDO_FETCH_ORI_*定数を指定して ください。

PDO_ERR_CANT_MAP (integer)

PDO_ERR_SYNTAX (integer)

PDO_ERR_CONSTRAINT (integer)

PDO_ERR_NOT_FOUND (integer)

PDO_ERR_ALREADY_EXISTS (integer)

PDO_ERR_NOT_IMPLEMENTED (integer)

PDO_ERR_MISMATCH (integer)

PDO_ERR_TRUNCATED (integer)

PDO_ERR_DISCONNECTED (integer)

PDO_ERR_NO_PERM (integer)

PDO_ERR_NONE (string)

SQLSTATE '00000'に対応し、SQLステートメントが エラーや警告がなく発行に成功したことを意味します。

目次
PDO::beginTransaction --  トランザクションを開始する
PDO::commit --  トランザクションをコミットする
PDO::__construct --  データベースへの接続を表すPDOインスタンスを生成する
PDO::errorCode --  データベースハンドラにおける直近の操作に関連する SQLSTATE を取得する
PDO::errorInfo --  データベースハンドラにおける直近の操作に関連する拡張エラー情報を取得する
PDO::exec --  SQL 文を実行し、作用した行数を返す
PDO::getAttribute --  データベース接続の属性を取得する
PDO::lastInsertId --  最後に挿入された行の ID を返す
PDO::prepare --  文を実行する準備を行い、文オブジェクトを返す
PDO::query --  SQLステートメントを実行、結果セットをPDOStatementオブジェクトとして返す
PDO::quote --  クエリ用の文字列をクオートする
PDO::rollBack --  トランザクションをロールバックする
PDO::setAttribute --  属性を設定する
PDOStatement::bindColumn --  カラムを PHP 変数にバインドする
PDOStatement::bindParam --  指定された変数名にパラメータをバインドする
PDOStatement::columnCount --  結果セット中のカラム数を返す
PDOStatement::errorCode --  文ハンドラにおける直近の操作に関連する SQLSTATE を取得する
PDOStatement::errorInfo --  文ハンドラにおける直近の操作に関連する拡張エラー情報を取得する
PDOStatement::execute --  プリペアドステートメントを実行する
PDOStatement::fetch --  結果セットから次の行を取得する
PDOStatement::fetchAll --  全ての結果行を含む配列を返す
PDOStatement::fetchColumn --  Returns a single column from the next row of a result set
PDOStatement::getAttribute --  文の属性を取得する
PDOStatement::getColumnMeta --  結果セットのカラムに対するメタデータを返す
PDOStatement::nextRowset --  複数の行セットを返す文ハンドラで次の行セットに移動する
PDOStatement::rowCount --  直近の SQL 文意よって作用した行数を返す
PDOStatement::setAttribute --  文の属性を設定する
PDOStatement::setFetchMode --  この文に対するデフォルトのフェッチモードを設定する