PDA

Vollstndige Version anzeigen : CSV-Import in MySQL


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?

RDJ
16-06-2004, 11:13
Ich hoffe du hast PhpMyAdmin...
dieser kann CSV dateien importieren...


Ansonsten stimmt dein SQL soweit ich sehen kann nicht

muss es nicht heissen :

INSERT INTO (FELD1,FELD2,FELD3....) VALUES (VALUE1,VALUE2,VALUE3....)

???

Gru RDJ

bazubi
16-06-2004, 11:17
muss es nicht heissen :

INSERT INTO (FELD1,FELD2,FELD3....) VALUES (VALUE1,VALUE2,VALUE3....)

???


Nicht unbedingt. Man kann die Feldliste auch weglassen, wenn man dafr die Values in der gleichen Reihenfolge wie in der Datenbank angibt.

RDJ
16-06-2004, 12:46
aaasoo, aber ic vermute dadran liegt sein fehler...