(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
PDO::setAttribute — 属性を設定する
データベースハンドルの属性を設定します。 利用可能な通常の属性は以下の一覧の通りです。いくつかのドライバでは、 ドライバ固有の属性を使用することが可能です。
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
を返します。