人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPでMySQLに接続し致命的なエラーが発生した時の処理方法を教えてください。

MySQLに接続後、一定時間が過ぎると以下のエラーメッセージが表示されます。
(1)このメッセージを表示させずにエラー処理をする最適と思われる方法(トップページへ転送するなど)を教えてください。set_time_limitなどで処理時間を調整して解決する方法は考えていません。
(2)致命的なエラーには一般的にどのような処理をするべきなのか教えてください。

エラーメッセージ
Fatal error: Maximum execution time of 60 seconds exceeded in ...

Linux、Windows
PHP 5.2.5
MySQL 5.1.22-rc
MySQL の文字コード: UTF-8

●質問者: metazy
●カテゴリ:インターネット ウェブ制作
✍キーワード:Linux MySQL PHP RC TIME
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● pahoo
●60ポイント

(1)このメッセージを表示させずにエラー処理をする最適と思われる方法

ご承知のように、それは実行時タイムアウトエラー(1つのスクリプトの処理に60秒以上かかっている)です。

対症療法として処理の分割を実施するか、処理の最適化を目指すのが定石です。

たいていの場合、異常に処理時間がかかっている繰り返し処理が1カ所あるはずです。その部分を特定し、ループを分解するか、処理の最適化を試みます。


(2)致命的なエラーには一般的にどのような処理をするべきなのか教えてください。

  1. プログラムの停止(異常終了させて暴走を止める)⇒PHPエンジンに任せる
  2. エラー発生時のログの吐き出し⇒set_error_handler, set_exception_handlerを利用し、エラー発生後の処理を記述
  3. 管理者への通知(アラートメッセージやメールによる)⇒error_logを利用

参考サイト

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ