1

こんにちは。

foreachPHPループに問題があります。

simplexmlを使用して xml ファイル ( ~20mb ) を解析し、データをmysqlに挿入します

xml には 37000 を超えるアイテムがあり、xml からデータを読み取るには 37000 回ループする必要があります

100回の反復ごとに、次のような文字列を作成します: insert into my_table values (...)

しかし、10500 回目の繰り返しで 502 エラーが発生します。

ループ後に文字列を送信しようとしましたが、再びエラーが発生しました:

memory_limit=240 
max_execution_time 500

どうすればこの問題を解決できますか。よろしくお願いします。

4

2 に答える 2

1

問題は、スクリプトがタイムアウトしていることだと思います。スクリプトで使用set_time_limit(0)するか、次のように変更することでこれを克服できmax_execution_timeますphp.ini

while(1) {
  set_time_limit(0);
  // do something
}

memory_limitまた、を編集しphp.iniて Web サーバーを再起動することにより、 を増やす必要があります。

set_time_limit()のドキュメントを読む

于 2013-08-08T16:03:59.343 に答える