• 締切済み

どっちが適用?

こんにちは。質問させてください。 PHPを用いてWEBにDBのデータを表示させようとしています。 DBのデータが膨大なため、 強制終了しないために スクリプト内に set_time_limit(0); を記述しました。 php.iniには max_execution_time = 60 と書かれています。 この場合、SQLの処理が長い場合、 どちらの設定が適用されるのでしょうか? 実際に実行すると60秒で強制終了されますが、 周りの人いわく set_time_limit(0);が適用されるはずなのでおかしいといいます。 宜しくお願いいたします。

  • PHP
  • 回答数1
  • ありがとう数3

みんなの回答

  • Mizyu
  • ベストアンサー率41% (245/593)
回答No.1

確かなことは、わかりませんが、php.iniは該当するコードより先に読まれるとおもうので、 後のほう、コードに記載したset_time_limit(0);が有効になると思います。 (試したことがないのでわかりません) ためしに、そのコードで無限LOOPさせてみてはいかがでしょう? いつまでも終わらないプログラムを作って実行を試してみて、 それでタイムアウトの時間を計測してみては?

pantsu69
質問者

補足

解答ありがとうございます。 上記のとおり実行した結果、set_time_limit(0)が適用されていること がわかりました。 再び質問なんですが、 set_time_limitやmax_execution_timeというのは、 あるPHPファイルが実行開始から、実行終了までの処理時間を 左右するものなのでしょうか? 色々と調べているのですが、 SQL文を発行した開始から、終了までの時間を制御するものって あるのでしょうか? 解答していただいたにもかかわらず質問ぜめにして もうしわけありませんが、宜しくお願いいたします。

関連するQ&A

  • ローカルで動いているPHPがタイムアウトする

    ローカルで動かしているPHPプログラム (他のサイトからソースを自動取得するシステム) を動かしているのですが 巡回するサイトが多いため Maximum execution time of 60 seconds exceeded とエラーが発生してしまいます。 PHP.iniの max_execution_time = 60 max_input_time = 60 の箇所を max_execution_time = 360 max_input_time = 360 へ post_max_size = 20M upload_max_filesize = 20M をそれぞれ100MBへ変更しましたが Fatal error: Maximum execution time of 60 seconds exceeded とエラーが表示されます。 どなたか恐縮ですがこの問題に長けている方のご返信をお待ちしています。 それでは宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • タイムアウトについて

    Maximum execution time of 30 seconds exceeded というエラーが出てしまいました。 確かにソースは長いのですが、内容としてはDBを読み、その内容をHTMLではきだす、といったものです。 php.iniの設定は、「safe_mode = Off」になっています。 Resource Limitsで、max_execution_time = 30になっていたのを、max_execution_time = 360に治しましたが、変化ありませんでした。 どうしたら、タイムアウトを長くできますか? ループを抜けることができないといった状況はありません。 教えて下さい。宜しくお願いします。

    • 締切済み
    • PHP
  • MAMPでsqlをインポートできない

    macカテゴリで回答が頂けなかったのでphpの方で再度質問させてください。 mampでphpmyadminを使って90Mのsqlをインポートしようとしたのですが ファイルサイズが大きすぎるため下記のようなエラーが出ました。 Fatal error: Allowed memory size of xxxxxx bytes exhausted phpinfoにてphp.iniファイルの場所を確認し該当するphp.iniの memory_limit post_max_size upload_max_filesize max_execution_time 等を大幅に増やして書き換えました。 MAMPを再起動しphpinfoで設定が反映されたのも確認したのですが どうしても上記のエラーが解消されません。 何か他に見落としている点はありますでしょうか? ご教授頂けますようお願いいたします。

    • ベストアンサー
    • PHP
  • Maximum execution time of 30 seconds exceededの対応方法

    PHP+MySQL+Apache+Unixのホスティングサービス環境で作業をしているのですが、長いSQL文(INSERT文のみ)をPHPから実行すると、「Maximum execution time of 30 seconds exceeded」というエラーが出てしまいます。 max_execution_timeを変更すれば、解決するのは分かっているのですが、ホスティングなので変更が出来ません。 ほかに対応方法はないでしょうか?

    • ベストアンサー
    • PHP
  • PHPでファイルアップローダー

    PHPでファイルアップローダーを作成しましたが、サイズの大きなファイルがアップロードできなくて困っています。 具体的には、900MBのファイルアップロードはできますが、1.4GBになるとアップロードできていません。 設定値は下記のようにし、十分にとっているつもりです。なお、HTMLで表示した実際に使われている設定値です。 <?php echo 'memory_limit = ' . ini_get('memory_limit') . "<br />"; echo 'post_max_size = ' . ini_get('post_max_size') . "<br />"; echo 'upload_max_filesize = ' . ini_get('upload_max_filesize') . "<br />"; echo 'max_execution_time = ' . ini_get('max_execution_time') . "<br />"; echo 'max_input_time = ' . ini_get('max_input_time') . "<br />"; ?> ↓ memory_limit = 5120M post_max_size = 5120M upload_max_filesize = 5120M max_execution_time = 300 max_input_time = 300 $_FILEを確認すると、下記のようにファイル名以外空となっています。エラーコードが0で正常アップロードの判定になっているので、原因が分からず困っています。 array(1) { ["upfile"]=> array(5) { ["name"]=> array(5) { [0]=> string(24) "testfile.ISO" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" [4]=> string(0) "" } ["type"]=> array(5) { [0]=> string(0) "" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" [4]=> string(0) "" } ["tmp_name"]=> array(5) { [0]=> string(0) "" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" [4]=> string(0) "" } ["error"]=> array(5) { [0]=> int(2) [1]=> int(4) [2]=> int(4) [3]=> int(4) [4]=> int(4) } ["size"]=> array(5) { [0]=> int(0) [1]=> int(0) [2]=> int(0) [3]=> int(0) [4]=> int(0) } } } アドバイスいただければ幸いです。

    • 締切済み
    • PHP
  • phpで巨大なファイルをアップロード

    お世話になります。 PHP・Apacheを使用して大きな容量のファイルをアップロードしようとしています。 php.iniで下記のように値を変更しました。 max_execution_time = 1800 max_input_time = 1800 memory_limit = 2048M post_max_size = 2048M upload_max_filesize = 2048M default_socket_timeout = 1800 この状態でApacheを再起動して1.2GBほどのファイルをアップロードしてみたのですが エラーも起こらず、正常にアップロードされたかと思ったら160バイト程の容量でサーバーにあがっていました。 600MBくらいのファイルでためしたところ正常にアップロードされたのですが 1GB以上のファイルをアップロードするためにはまだなにか設定が足りない、または間違っているのでしょうか? サーバーはCentOS5.5の64bit、メモリは16GBあります。 回答よろしくお願いします。

    • ベストアンサー
    • PHP
  • FreeBSDのPHPでファイルのアップロードができない

    FreeBSD 5.3R:Apache/2.0.52:PHP Version 4.3.4にてPHPでファイルのアップローダを作成しているのですが、うまく動作しません。(/tmpにテンポラリファイルが作成されないようです。)設定は・・・ memory_limit = 40MB post_max_size = 36MB upload_max_filesize = 32MB upload_tmp_dir = /tmp max_execution_time = 260 max_input_time = 300 となっているのですが、phpinfo()で確認すると、何故かmemory_limitの表示がConfiguration PHP Coreにありません。 これに起因するものではないかと思っているのですが、FreeBSDでPHPを使ってらっしゃる方でこのあたりに詳しい方、是非ご教授ください。

    • 締切済み
    • PHP
  • PHPでのタイムアウト設定(HTTPコネクション)

    PHPで、あるwebサイト(仮にfoo.comとします)にアクセスして情報を取ってくる、という スクリプトを書いています。 この際、foo.comが落ちている等の理由でアクセスできなかった場合の タイムアウトを作りたいのですが、set_time_limitを使ったところ うまくいきません。下記の例で行けば、 「5秒以内にfoo.comへコネクトし、データを512バイト読み込み終わらなければ  スクリプトを強制終了する」 ということを考えているのですが、現実にはhttpを見に行ったまま 5秒以上たって、終了されません。 何かうまい方法を教えていただけませんでしょうか? なお、バージョンはPHP4.0.4pl2, OSはredhat6.2Jです。 以下に、スクリプトを書きます。 <? set_time_limit(5); error_reporting(0); $file = fopen("http://foo.rom", "r"); $line = fread($file, 512); fclose($file); print("$line"); ?> 宜しくお願いいたします。

    • 締切済み
    • PHP
  • タイムアウト時に次の処理へ移行する方法

    Windows/AN HTTPDでPHP Version 4.4.9を動かしています。 fsockopenで処理を行なっているのですが、 タイムアウト時に次の処理に移行させる方法が分かりません。 foreachで繰り返し処理中にタイムアウトが出た場合、そこで処理が止まってしまいます。 (エラー内容: Maximum execution time of 30 seconds exceeded) set_time_limitを使った時間延長以外の方法で、 何か対策がありましたらご教授いただけませんでしょうか。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • 大容量のファイルアップロードについて

    どうしても分からず、質問いたします。 自宅サーバを構築しPHPのブラウザによる大容量ファイルアップロードが可能にしようとしています。 (2GBくらいのファイルでもアップロードしたい) しかし、外側からアップロードを行う際、数十MBまでなら可能ですが、それ以上になると 途中までアップロード処理しているようですが、ページが表示されませんのエラーや、アップロードの処理が中断してしまいます。 ご教授お願い致します。 ■フォーム側の設定(MAX_FILE_SIZE値) <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="2048000000"> ■php.iniの主な変更箇所 memory_limit = -1 max_input_time = 6000 max_execution_time = 60000 upload_max_filesize = 2000M post_max_size = 2000M ■以下サーバの環境です。 OS:Windows2000 SP4 IIS5.0 メモリ:512MB PHP:5.2.5 よろしくお願い致します

    • 締切済み
    • PHP

専門家に質問してみよう