「PHPのPDOでsetAttributeの意味を知る。」の編集履歴(バックアップ)一覧に戻る

PHPのPDOでsetAttributeの意味を知る。 - (2015/07/27 (月) 11:04:24) のソース

今回はPHPのPDOにてsetAttributeの利用方法を記述していきたいと思います。7月27日記事
~
~
目次
#contents
~
~
----
~
*setAttributeとは
とりあえず日本語に直すとsetは動詞で「セットする、位置づける、固定する」という意味があり、Attributeは名詞で「属性」という意味があります。つまり属性をセットするというものです。PDOは様々なデータベース(MySQLやPostgresやOracle)で利用できるようになっています。その中にはデータベース固有のものも含まれていたりします。そんな中でどうPDOを動かしたいのか意図的に属性を指定するために使われたりします。メソッドみたいですが、色々な記事で関数と書かれていたりしますね。
~
~
*PHPマニュアルにて
[[http://php.net/manual/ja/pdo.setattribute.php:http://php.net/manual/ja/pdo.setattribute.php]]
> 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 は空文字に変換される
>>
~
となっており、第一引数、第二引数の指定の仕方が載っています。
~
~
*使い方例
**SQL文のエラーを吐く
 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);//SQL文エラーはエラー吐く
第一引数にてATTR_ERRMODEを設定し、第二引数でERRMODE_WARNINGを設定し、E_WARNINGを発生させる方法が載っています。今回、
 Fatal error: Call to a member function fetchColumn() on a non-object
というエラーがでたので、これを設定してあげると、SQL文エラーがあると判明しました。SQL文エラーがあった場合、その詳細を返してくれることができます。
~
~
以上