「PHPはエラー表示しない」のが標準設定らしいです.初心者や使うだけの人がWarningsを見せられても意味わかんないって事らしいんですけど、チョッとしたデバッグでも不便です.
PDOのSQL周りのエラーでExceptionにして欲しい
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
PDOを使うとExceptionが出てこない.
PDOをつかっていると、Prepare後にExecuteしたらなぜかうまくいかないことがある.原因を表示してくれると助かるのですが.
PDO::ERRMODE_SILENT | デフォルトのモードです。 |
エラーを取得するには PDO::errorCode() および PDO::errorInfo() メソッドを使用します。
つまりエラーがでて失敗したらPDO::errorInfo()を見て下さいなってこと
PDO::ERRMODE_EXCEPTION
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
これは何をしているのかというと,PDOの設定PDO::ATTR_ERRMODEにPDO::ERRMODE_EXCEPTIONを設定(SetAttribute)している
これで、execute失敗でExceptionがThrowされてBacktraceが見られる,SQLの何が悪いかとかSQLのエラーメッセージが見えるので便利だった.
関連
PHPは標準がエラー無視なので表示に変える
phpで syntax エラーが表示されない場合の対応法を、php.iniの設定変更を軸にまとめた - ブックマクロ開発に