忍者ブログ

エンジニア初心者の備忘録

エンジニア初心者が躓いたことハマったことを公開します!

MySQL実行時のエラーの捕捉について

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

MySQL実行時のエラーの捕捉について

今、研修でお問い合わせフォームを作成しています。

PDOはできているはずなのに、MySQLへデータの格納がされない!
エラーも特に表示されない!!
何が、問題なんだろう?とずっとハマっていました。
PDOは、下の関数を使用して実行するプログラムにしていました。

function connectDb() {
    try {
        return new PDO(DSN, DB_USER, DB_PASSWORD);
    } catch (PDOException $e) {
        echo $e->getMessage();
        exit;
    }
}

色々調べたり、先輩にアドバイスをもらったりしたところ、PDOはDB接続のエラーは、Exceptionで返してくれるけど、SQL実行時のエラーはスルーするようです。

このエラーの確認方法としては、PDO::errorInfoを使用したりと、色々方法があるようですが、
上に書いた、PDO実行関数の
第四引数に「array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION))」を追加するのが、一番、良いのでは?という結論になりました。
下のプログラムですね。

function connectDb() {
    try {
        return new PDO(DSN, DB_USER, DB_PASSWORD, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
    } catch (PDOException $e) {
        echo $e->getMessage();
        exit;
    }
}

ちなみに、エラーの原因は、スペルミスでした!

【参考サイト】
http://piyopiyocs.blog115.fc2.com/blog-entry-657.html
http://php.net/manual/ja/pdo.errorinfo.php
PR

コメント

プロフィール

HN:
プラムザ 太郎
性別:
非公開

P R