PDO::setAttribute

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::setAttribute 属性を設定する

説明

public PDO::setAttribute ( int $attribute , mixed $value ) : bool

データベースハンドルの属性を設定します。 利用可能な通常の属性は以下の一覧の通りです。いくつかのドライバでは、 ドライバ固有の属性を使用することが可能です。

  • PDO::ATTR_CASE: 強制的にカラム名を指定したケースにする

    • PDO::CASE_LOWER: 強制的にカラム名を小文字にする

    • PDO::CASE_NATURAL: データベースドライバによって返されるカラム名をそのままにする

    • PDO::CASE_UPPER: 強制的にカラム名を大文字にする

  • PDO::ATTR_ERRMODE: エラーレポート

    • PDO::ERRMODE_SILENT: エラーコードのみ設定する

    • PDO::ERRMODE_WARNING: E_WARNING を発生させる

    • PDO::ERRMODE_EXCEPTION: 例外 を投げる

  • PDO::ATTR_ORACLE_NULLS (Oracle だけでなく、全てのドライバで利用可能): NULL と空文字列の変換

    • PDO::NULL_NATURAL: 変換しない

    • PDO::NULL_EMPTY_STRING: 空文字は NULL に変換される

    • PDO::NULL_TO_STRING: NULL は空文字に変換される

  • PDO::ATTR_STRINGIFY_FETCHES: フェッチする際、数値を文字列に変換する。bool を必要とする

  • PDO::ATTR_STATEMENT_CLASS: PDOStatement に由来するユーザーが提供するステートメントクラスを設定する。 永続的な PDO インスタンスは使用できない。 array(string classname, array(mixed constructor_args)) を必要とする。

  • PDO::ATTR_TIMEOUT: タイムアウト秒数を指定する。すべてのドライバがこのオプションに対応しているわけではなく、 またドライバによってこのオプションの扱いは異なる。たとえば sqlite は書き込み可能なロックを確保するのをこの秒数まで待ち続けるが、 他のドライバではこの秒数を接続時のタイムアウトや読み込みのタイムアウトとして扱うこともある。 int を渡す。

  • PDO::ATTR_AUTOCOMMIT (OCI, Firebird そして MySQL で利用可能): それぞれの単一文で自動コミットするかどうか。

  • PDO::ATTR_EMULATE_PREPARES プリペアドステートメントのエミュレーションを有効または無効にする。 ドライバによってはネイティブのプリペアドステートメントをサポートしていなかったり 完全には対応していなかったりするものがある。この設定を使うと、常に プリペアドステートメントをエミュレートする (TRUE および プリペアのエミュレートがドライバでサポートされている場合) か、 ネイティブのプリペアドステートメントを使おうとする (FALSE の場合) かを設定できる。現在のクエリを正しく準備できなかった場合は、常にエミュレート方式を使う。 bool で指定する。

  • PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (MySQL で利用可能): バッファされたクエリを使用する。

  • PDO::ATTR_DEFAULT_FETCH_MODE: デフォルトのフェッチモードを設定する。このモードについての説明は PDOStatement::fetch() のドキュメントを参照。

返り値

成功した場合に TRUE を、失敗した場合に FALSE を返します。