2009-07-24 19 views
0

Unten ist mein Code, es ist ein Skript, das ich nur einmal ausführen muss, um eine neue mysql-Tabelle zu aktualisieren, die ich hinzugefügt habe, ich habe 60.000 Benutzer und es lief und fügte 268 Zeilen hinzu, es zeigte keine Fehler oder irgendetwas, es hat einfach nicht den Rest hinzugefügt und ich habe keine Ahnung warum?php und mysql Skript-Timeout ohne Fehler?

<?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

Haben Sie Ihr Fehlerprotokoll überprüft? – Greg

+0

Dies kann einige verrückt, aber ich bin neu zu arbeiten auf einem Home-Server mit Xampp, ich weiß wirklich nicht, wo das Fehlerprotokoll würde – JasonDavis

+0

Hmm nicht sicher über Xampp sein ... vielleicht fragen Sie auf Serverfault :) – Greg

Antwort

6

versuchen, die maximale Skriptausführungszeit auf 0 (unendlich) Einstellung:

ini_set('max_execution_time', 0); 

Wenn Sie display_errors oder error_reporting ausgeschaltet, dann können Sie nicht zu einem schwerwiegenden Fehler durch einen Timeout generiert sehen.

+0

Ich habe es gerade versucht, so weit so gut, es läuft seit etwa 5 Minuten und hat Updates über 1k 60k. Das wird eine Weile dauern, vielleicht hätte ich es nicht an den Browser ausgeben sollen, mein Browser wird wahrscheinlich abstürzen – JasonDavis

+0

Das ist sehr langsam, aber wenn das nur ein einmaliges ist, gibt es keinen Punkt, der deinen Code optimiert – Greg

+0

Für den Rekord aber : ORDER BY RAND() ist langsam, macht eine Abfrage jedes Mal um die Schleife ist langsam, und das Einfügen einzelner Zeilen statt in Batches ist langsam :) – Greg