漠然とデータベースに接続するときに
try{

     $変数名 = new PDO('接続文字列', 'ユーザー名', 'パスワード');

}catch(PDOexception $e){

   echo $e->getMessage();

}

 

とおまじないのように書いて、エラーが出た場合の例外処理をしていたのですが、曖昧なところが多いのでちゃんと覚えてみることに!

 

  • まずなぜ例外処理をしないといけないのか??

これはもしインスタンスを作る際、コンストラクタに誤りがあった場合(ユーザ名やパスワードが違ったり、データベースが違ったりetc...といった場合)にエラーがブラウザに出力されるのですが、このエラーにコンストラクタの内容がモロに出てしまうらしいです。

 

  • そうすると??

第三者にこの内容が渡り、何らかの攻撃や情報の取得が起きてしまう恐れにつながってしまうガーンガーンガーン

 

  • 対策しましょう!

では、これを表示させないためにはどうするかというところでtry-catchという構文が出てくるわけですね!

このcatchの部分にPDOexceptionクラスという例外クラスを使い$eという変数名でインスタンスを作りgetMessageで例外メッセージを受け取り出力するということをやっているという流れになるみたいです。

 

他にも例外クラス名にはExceptionクラスかExceptionクラスを継承した子クラスでなければいけないとかあるらしいですが、ココらへんも時間があるときにでも勉強したいですね!

 

今回参考にさせていただいた記事

【PHP超入門】クラス~例外処理~PDOの基礎