PHPのタイムアウトエラーを回避したい。(M
PHPのタイムアウトエラーを回避したい。(Maximum execution time of 30 second...PHPのタイムアウトエラーを回避したい。(Maximum execution time of 30 seconds exceeded) 現在ワークフレームCakePHPにてスケジュール管理システムの作成をしています。
ですが『 Maximum execution time of 30 seconds exceeded』のタイムアウトエラーが出て困っています。
このタイムアウトエラーを回避するための方法を教えてください。
またset_time_limitを使ったとき処理中断の時間を指定できるとのことですが
処理を中断させると「データが無い」等のエラーが代わりに出るのでしょうか?
ご回答お願いします。
----------------------以下詳細、その他質問----------------------------
今回のメインの質問は上記のみですが、もしCakephpについてもお分かりの方がいれば
以下の質問にも答えていただけると助かります。
エラーはローカルサーバーのXamppを起動させ、ブラウザを開いた時に起こります。
更新すると問題なく表示されますし、いつもエラーが出るわけではありません。
たまにエラーが出る程度なので、対応しようにも確認作業が出来ない状態です。
エラーが出ているのは
cake\libs\model\datasources\dbo\dbo_mysql.php on line 499
function _execute($sql) {
return mysql_query($sql, $this->connection); ←499行目
}
以上の文章がある場所です。
この部分はCakephpでは何を処理している部分なのでしょうか?
もしお分かりの方がいれば教えてください。
早急なご回答。
max_execution_timeで指定してもなおエラーが排出される可能性がある
データ量の問題ではなく、プログラム文に何らかの原因があり
いくら時間を伸ばしても単にエラー排出までの時間が延びるだけになる可能性がある場合は、どのように対応すべきでしょうか?
このエラーが出た時だけ「再度更新してみてください」等の文章が出るように設定することは可能でしょうか?最大実行時間は php.ini の max_execution_time で設定します。
>補足への回答
>どのように対応すべきでしょうか?
がんばってデバッグしてください。
開発環境の場合、同じデータを同じように処理して実行時間が毎回違うなど絶対にありえません。
実行時間が長い時と短い時で何が違うのかを調べます。
>再度更新してみてください
try ~ catch でいけませんでしたっけ……。
ちなみにソースコード中の499行目ですが、データベースに対してアクセスし、データを取り寄せまたは格納しています。
この $sql の中に入っている文字列をデバッグ出力して phpMyAdmin などで explain すれば、ネックになっている部分が分かるかもしれません。
(ただし、この↑ように言われてもやり方を検索で調べることができない場合、今の経験値ではスキル的にキビシめです。分かる人に丸投げした方が早いです)「try ~ catch」や「explain」の存在を知りませんでした。
まだまだ勉強中なので、知識が増えて良かったです。
クエリの回数は20程度なのでそこまで多くはないのですが、他の理由がないか徹底的に調べたいと思います。
。