Hallo
also habe eine Textdatei mit ca. 45000 Zeilen, diese will ich Importieren hab dazu ein fertiges Script von einer PHP Seite umgeschrieben.
Das Problem ist das er nach 25000-30000 Zeilen aufhört zu importieren hab es mehrmals probiert wenn ich jedoch die Datei in 2 Datein aufteile je 25000 Zeilen und sie einzeln importiere klappt es.
So nun folgende Frage
1. gibt es eine leichtere Methode die Datei zu importieren ?
2. Woran liegt es das das Script abbricht ?
3. Gibt es eine Möglichkeit das man die Datei mit den ca. 45000 Zeilen Importieren kann ohne diese Aufzuteilen.
Mfg Bob
also habe eine Textdatei mit ca. 45000 Zeilen, diese will ich Importieren hab dazu ein fertiges Script von einer PHP Seite umgeschrieben.
Das Problem ist das er nach 25000-30000 Zeilen aufhört zu importieren hab es mehrmals probiert wenn ich jedoch die Datei in 2 Datein aufteile je 25000 Zeilen und sie einzeln importiere klappt es.
So nun folgende Frage
1. gibt es eine leichtere Methode die Datei zu importieren ?
2. Woran liegt es das das Script abbricht ?
3. Gibt es eine Möglichkeit das man die Datei mit den ca. 45000 Zeilen Importieren kann ohne diese Aufzuteilen.
Mfg Bob
PHP-Code:
<?php
// Systemeinstellungen
$id = "*****"
$pw = "*****";
$host = "localhost";
$database = "*****";
$table = "*****";
$datei = "*****";
// Einstellungen Ende
echo "<html><body>";
if(!$table || !$datei) die("Die Quelle oder das Ziel sind unbekannt");
// Verbindung mit dem Server und einer Datenbank
$conn_id = mysql_pconnect($host,$id,$pw) or die("Verbindung konnte nicht hergestellt werden");
mysql_select_db($database) or die("Die Datenbank konnte nicht gefunden werden");
// ermitteln Namen und Menge der Spalten
$result = mysql_list_fields($database,$table);
for($i=0;$i<mysql_num_fields($result);$i++) {
$spalten .= mysql_field_name($result,$i).",";
}
$anzahl = mysql_num_fields($result);
$spalten = trim(substr($spalten,0,-1));
// leert die Tabelle
mysql_query("DELETE FROM $table") or die(mysql_error());
// liest die Datei ab und überträgt sie zeilenweise in die Tabelle
$fp = fopen($datei,"r"); unset($i);
while(!feof($fp)) {
$zeile = fgets($fp,1024);
if(!$start) { if(count(explode(";",$zeile))!=$anzahl)
die ("Menge der Daten entspricht nicht der Anzahl der Spaltenanzahl"); }
echo $i++."<br>";
$zeile = str_replace(";",",",$zeile);
mysql_query("INSERT INTO $table ($spalten) VALUES ($zeile)");
$start=true;
}
fclose($fp);
echo "Import erfolgreich abgeschlossen.<p></p>";
echo "</body></html>";
?>
Kommentar