私は再帰関数を使用して、すべてのユーザーに対して何らかの計算を行い、特定の条件に対して報酬を与えています。すべてが正常に機能していましたが、ユーザー番号が20000以上に増えたため、スクリプトを完了できません...私のコードは次のようになります
function give_award($mid) {
$qry = mysql_query("SELECT * FROM users WHERE uid='$mid'");
while($row=mysql_fetch_array_result)
{
$refer = $row["refer"];
}
//some conditions applied
//query for user award
//if succeed
$mid = $mid+1;
give_award($mid)
}
give_award($mid);
きっと Give_award(); 一度の呼び出しでタイムアウトをしていません。関数が再帰的に (再) 呼び出される前に、毎回制限時間をリセットする方法はありますか?
私が試した方法: set_time_limit(0);
.htaccess でタイムアウト制限を変更する php.ini で apache タイムアウト制限を変更する
注意:致命的なエラーは表示されませんでした...しかし、これをローカルサーバーで実行しようとするたびにApacheを再起動する必要があります... Win7 32ビットでZend Server Communityエディションを使用しています。
助けてください