pdo-oci

    PDO::ATTR_EMULATE_PREPARES   => true// turn on emulation mode for "real" prepared statements
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_SILENT, //do not throw exception
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, // make the default fetch be an associative array
    PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8 COLLATE utf8_general_ci",
    PDO::ATTR_AUTOCOMMIT     => false//Whether to autocommit every single statement

equal to

PDO::ATTR_EMULATE_PREPARES

データベース側が持つ「プリペアドステートメント」という機能のエミュレーションをPDO側で行うかどうかを設定します.

  • PHP5.1のデフォルトは false
  • PHP5.2以降のデフォルトは true

この設定で,いくつかPDOの挙動に違いが表れます.

  • プリペアドステートメントのためにデータベースサーバと通信する必要が無くなるため,エミュレーションを行ったほうがパフォーマンスは向上する.
  • 存在しないテーブル名やカラム名をSQL文に持つプリペアドステートメントを発行したとき,エミュレーションOFFの場合はすぐにエラーが発生するが,エミュレーションONの場合は実際にクエリを実行するまでエラーが発生するかどうかわからない.
  • エミュレーションがONの場合のみ, ; 区切りで複数のSQL文を1つのクエリで実行する

foreach文でキーと値を取り出す



foreach (配列変数 as キー変数 => 値変数){
  実行する処理1;
  実行する処理2;
}
Next Post Previous Post
No Comment
Add Comment
comment url