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

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/07/19 23:50:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:pahoo No.1

回答回数5960ベストアンサー獲得回数633

ポイント60pt

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

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

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

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


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

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

参考サイト

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません