Scripte mit langer laufzeit ausführen

Spranta

Erfahrenes Mitglied
Hallo

ich habe mir ein Script geschrieben das meine alten Daten aus der Datenbank in eine CSV Datei speichert. Bei kleineren Datenmengen funktioniert es einwandfrei nur bei größeren Mengen macht er nicht alles da er zulange zum arbeiten braucht. Gibt es eine möglichkeit das stückweise zu machen? Mein Script sieht wie folgt aus

PHP:
<?
include("lib/config.inc.php");

$datei = fopen("backup.csv","a+");

$abfrage = mysql_query("SELECT * FROM test");
while($row = mysql_fetch_object($abfrage))
{
  $code = $row->id.";".$row->ip."\n";
  fwrite($datei, $code);
}

fclose($datei);
?>

Gruß
Spranta
 
Du könntest die Zeilen zählen lassen und ab einer gewissen Anzahl dann das Skript unterteilen per LIMIT Befehl von SQL.

Genau wie bei einer Seitenfunktion im Forum z. B.
 
Du könntest die MySQL-Abfrage begrenzen zb durch ne Range in der ID. Somit hättest du mehrere kleine Result_Arrays und könntest das script dann einfach öfter drüber laufen lassen und eben nacheinander ins File eintragen. Das wäre meiner Meinung nach die einzige sinnvolle Methode um das zu Segmentieren.
 
PHP:
<?
include("lib/config.inc.php");

// zaehler ist eine Variable die du dir irgendwo speicherst (Session, andere Datei)

$datei = fopen("backup.csv","a+");

$abfrage = mysql_query("SELECT * FROM test LIMIT ".$zaehler*500.' 500');
while($row = mysql_fetch_object($abfrage))
{
  $code = $row->id.";".$row->ip."\n";
  fwrite($datei, $code);
}

fclose($datei);

zaehler++;
?>


Oder du änderst die Script Ausführungszeit von PHP:
PHP:
$old_exec_time = ini_set('max_execution_time', %Zeit in Sekunden% );
 
Zurück