PDO の属性について何を設定すればいいですか?

ショコラ
ショコラ

PDO の属性について何を設定すればいいですか?

PDO のオプションについて、いつも設定しているものをまとめてみました。

もっさん先輩
もっさん先輩

①強制的にカラム名を小文字にします。

// 強制的にカラム名を小文字にします。
setAttribute(PDO::ATTR_CASE,PDO::CASE_LOWER)

②エラー時に PDOException をスローします。

// エラー時に PDOException をスローします。
setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION)

③フェッチする際、数値を文字列に変換します。

// フェッチする際、数値を文字列に変換します。
setAttribute(PDO::ATTR_STRINGIFY_FETCHES,true)

④null を空文字列に変換します。

// null を空文字列に変換します。
setAttribute(PDO::ATTR_ORACLE_NULLS,PDO::NULL_TO_STRING)

⑤自動コミットを無効にします。

// 自動コミットを無効にします。
setAttribute(PDO::ATTR_AUTOCOMMIT,false)

⑥連想配列で取得します。

// 連想配列で取得します。
setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC)

⑦プリペアドステートメントのエミュレーションを無効にします。

// プリペアドステートメントのエミュレーションを無効にします。
setAttribute(PDO::ATTR_EMULATE_PREPARES,false)

まとめると

[
  PDO::ATTR_CASE => PDO::CASE_LOWER,
  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
  PDO::ATTR_STRINGIFY_FETCHES => true,
  PDO::ATTR_ORACLE_NULLS => PDO::NULL_TO_STRING,
  PDO::ATTR_AUTOCOMMIT => false,
  PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
  PDO::ATTR_EMULATE_PREPARES => false,
]
Scroll to Top