MSniper
10-06-2004, 14:25
Hallo ich hoffe Ihr knnt mir helfen!
Ich bekomme aus einer Filemaker-DB (Mac) eine CSV-Datei (Werte in ' " ' eingeschlossen, Daten mit ',' getrennt).
Ich muss die Daten mit PHP in meine MySQL-DB importieren.
Das Prinzip ist mir schon klar, entweder mit "fgetcsv..." oder "Load Data Infile...", allerdings schaffe ich es mit beiden Varianten nicht. Es scheitert meistens daran, das die Zeilenumbrche scheinbar nicht korrekt erkannt werden und sich die Zellen verschieben.
Hier meine Versuche:
$query = 'LOAD DATA INFILE 'C:fmtomysql''dbexport.txt' INTO TABLE `test` FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '
'';
$result=mysql_query($query) or die(mysql_errno().": ".mysql_error());
und
$handle = fopen ("datei.txt","r");
while ($data = fgetcsv ($handle, 1000, ","))
{
$anfrage = ("INSERT INTO test ");
$anfrage .= ("VALUES (");
$anfrage .= ("'$data[0]', '$data[1]', '$data[2]', '$data[3]', '$data[4]', '$data[5]', '$data[6]', '$data[7]', '$data[8]')");
mysql_query($anfrage);
}
Beispieldaten der Textdatei:
"Ort","Zahnarzt","Dr. Name","25-09-2004","(10-12 Uhr in der Praxis)","(05321) 1234567","Ort","Strasse 55","Samstag"[Der komische Kasten fr Zeilenumbruch]
Wo liegen denn die Fehler?
Ich bekomme aus einer Filemaker-DB (Mac) eine CSV-Datei (Werte in ' " ' eingeschlossen, Daten mit ',' getrennt).
Ich muss die Daten mit PHP in meine MySQL-DB importieren.
Das Prinzip ist mir schon klar, entweder mit "fgetcsv..." oder "Load Data Infile...", allerdings schaffe ich es mit beiden Varianten nicht. Es scheitert meistens daran, das die Zeilenumbrche scheinbar nicht korrekt erkannt werden und sich die Zellen verschieben.
Hier meine Versuche:
$query = 'LOAD DATA INFILE 'C:fmtomysql''dbexport.txt' INTO TABLE `test` FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '
'';
$result=mysql_query($query) or die(mysql_errno().": ".mysql_error());
und
$handle = fopen ("datei.txt","r");
while ($data = fgetcsv ($handle, 1000, ","))
{
$anfrage = ("INSERT INTO test ");
$anfrage .= ("VALUES (");
$anfrage .= ("'$data[0]', '$data[1]', '$data[2]', '$data[3]', '$data[4]', '$data[5]', '$data[6]', '$data[7]', '$data[8]')");
mysql_query($anfrage);
}
Beispieldaten der Textdatei:
"Ort","Zahnarzt","Dr. Name","25-09-2004","(10-12 Uhr in der Praxis)","(05321) 1234567","Ort","Strasse 55","Samstag"[Der komische Kasten fr Zeilenumbruch]
Wo liegen denn die Fehler?