Hallo zusammen,
wir möchten gerne eine CSV-Datei in eine MySQL Datenbank/Tabelle importieren.
Die Tabelle und die CSV-Datei haben 20 Spalten bzw. Felder. Der Text ist in Hochkommatas und die Felder sind mit Semikolons getrennt.
Das Problem:
Die Datensätze in der CSV-Datei sind nicht in einer Zeile. Wenn ich also die CSV-Datei mit z.B. mit phpmyadmin importiere, dann folgt die Fehlermeldung über eine ungültige Anzahl von Feldern.
Der Import soll später scriptgesteuert funktionieren.
Wie sollen wir am Besten vorgehen? Die Datei mit php zerlegen und dann zusammensetzen/importieren?
Oder kann ich mysql dazu bewegen die Daten zu importieren?
Vielen Dank für eure Hilfe im Voraus
Import einer CSV Datei in MySQL
Wenn die Datensätze nicht jeweils in einer einzigen Zeile sind, ist das keine vernünftig importierbare Datei. Ist der Grund, dass CR/LF-Zeichen in den Feldern vorhanden sind?
Zeig mal bitte eine Beispieldatei. Ein paar Zeilen reichen.
Janka
Zeig mal bitte eine Beispieldatei. Ein paar Zeilen reichen.
Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
Ich mag die Schreie.
Die Daten werden wohl aus einer Access-Datenbank exportiert.
Folgendermaßen kann man das nachvollziehen:
a) Texteditor (kwrite)
b) einige Zeilen einfügen
c) openoffice calc starten
d) Zelle bearbeiten und über kopieren + einfügen die Daten der Textdatei einfügen
e) Tabelle als CSV exportieren
Wenn man sich jetzt die CSV-Datei anschaut, dann erscheinen die Daten aus b) untereinander.
Bei meiner CSV-Datei handelt es sich um 4 oder 5 Felder pro Datensatz.
Folgendermaßen kann man das nachvollziehen:
a) Texteditor (kwrite)
b) einige Zeilen einfügen
c) openoffice calc starten
d) Zelle bearbeiten und über kopieren + einfügen die Daten der Textdatei einfügen
e) Tabelle als CSV exportieren
Wenn man sich jetzt die CSV-Datei anschaut, dann erscheinen die Daten aus b) untereinander.
Bei meiner CSV-Datei handelt es sich um 4 oder 5 Felder pro Datensatz.
Hier nicht. Ooo.org 2.4.0.14.r.b. hat geschrieben: Wenn man sich jetzt die CSV-Datei anschaut, dann erscheinen die Daten aus b) untereinander.
Da die zu importierenden Daten auf MS-Windows erzeugt werden, enthalten sie vermutlich CR-LF als Zeilentrenner, wo Unix nur LF erwartet. Wandel das mit "dos2unix" zuvor um.
Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
Ich mag die Schreie.