php
  • mysql
  • 2009-07-24 24 views 0 likes 
    0

    以下は私のコードです。追加した新しいmysqlテーブルを更新するのに1回だけ実行する必要があるスクリプトです。ユーザーは60,000人で実行され、268個の行が追加されました。ちょうど残りを追加しなかったと私は理由が分からない?phpとmysqlスクリプトのタイムアウトにエラーはありませんか?

    <?PHP 
    require_once "../config/functions.inc.php"; 
    
    // get users 
    $sql = 'SELECT * FROM friend_login'; 
    $result = executequery($sql); 
    while($row = mysql_fetch_assoc($result)){ 
        // get states 
        $sql = 'SELECT * FROM usstates order by rand() limit 1'; 
        $state = getSingleResult($sql); 
        //convert to lat and long 
        $geo = get_geo($state); 
        $lat = $geo['Latitude']; 
        $long = $geo['Longitude']; 
    
        //insert lat/long into locations table 
        $insert = "INSERT INTO friend_location (user_id, lat, `long`) VALUES ('$row[auto_id]', '$lat', '$long')"; 
        executeQuery($insert); 
    
        echo 'user updated with ' .$state. ' <BR> userID=' .$row[auto_id]. ' <BR><BR><BR>'; 
    } 
    ?> 
    
    +0

    エラーログを確認しましたか? – Greg

    +0

    これはいくらか狂っているかもしれませんが、私はxamppを使ってホームサーバーで作業するのは初めてです。エラーログがどこにあるのかは分かりません。 – JasonDavis

    +0

    xamppについてはわかりません...おそらくserverfaultでそれについて尋ねます:) – Greg

    答えて

    6

    (無限)0に最大限のスクリプト実行時間を設定してみてください:

    ini_set('max_execution_time', 0); 
    

    あなたははdisplay_errorsかのerror_reportingを持っている場合は、あなたがタイムアウトによって生成された致命的なエラーが表示されないことがあり、オフになって。

    +0

    私はちょうどこれを試しました、これまでのところとても良い、その約5分間実行され、60kの1kについての更新があります。これはしばらく時間がかかります。ブラウザに出力しないでください。ブラウザがクラッシュする可能性があります。 – JasonDavis

    +0

    遅いですが、これが単なるオフラインの場合、コードを最適化するポイントはありません。 – Greg

    +0

    :ORDER BY RAND()は遅いですが、ループの周りのたびにクエリを実行するのが遅く、バッチではなく個々の行を挿入するのが遅いです。 – Greg

    関連する問題