phpmyadmin lehnt CSV-Datei ab
Linuchs
- datenbank
Moin,
in eine neue leere DB-Tabelle möchte ich Adressen einfügen, die als CSV-Datei vorliegen:
bezeichnung;sortier_nr;plz;ort;homepage;zugriffscode
Verein A;BW;69469;Weinheim;http://www.example.de/;999 999 999
Verein B;BW;72622;Nürtingen.;http://example2.com/;888 888 888
...
Fehlermeldung von phpmyadmin:
Ungültige Anzahl an Spalten im CSV-Import in Zeile 1.
Keine Ahnung, was das bedeutet. Alle Zeilen haben sechs Felder.
Gruß vom ratlosen Linuchs
Hallo,
Keine Ahnung, was das bedeutet. Alle Zeilen haben sechs Felder.
Möglicherweise unsichtbare Zeichen in der ersten Zeile?
Gruß
Kalk
Hi,
Keine Ahnung, was das bedeutet. Alle Zeilen haben sechs Felder.
Möglicherweise unsichtbare Zeichen in der ersten Zeile?
Geheimtinte? 😉
Mich hat wohl das ü in "Nürtingen" argwöhnisch gemacht: Ein Problem mit der Zeichencodierung? - Aber das wäre dann nicht Zeile 1.
Live long and pros healthy,
Martin
danke für den Hinweis des Ü. Habe der CSV-Datei noch BOM verpasst, leider ohne Erfolg, Fehler bleibt.
Dann habe ich nur die erste Zeile geschickt, Fehler bleibt.
Will phpmyadmin womöglich sämtliche Felder der Tabelle haben?
Habe gerade entdeckt: phpmyadmin ignoriert die erste CSV-Zeile mit den Spaltennamen und verlangt eine Eingabe der Namen, durch Komma getrennt, obwohl ich vorher ;
als Trenner eingegeben habe.
Jetzt werden fehlende Spalten moniert, ich schaue die Fehler nach.
Will phpmyadmin womöglich sämtliche Felder der Tabelle haben?
Die Fehlermeldung lässt diese Interpretation zu…
Hast Du denn etwa nicht versucht, die Spaltenanzahl zu korrigieren?
Habe gerade entdeckt: phpmyadmin ignoriert die erste CSV-Zeile mit den Spaltennamen und verlangt eine Eingabe der Namen, durch Komma getrennt, obwohl ich vorher
;
als Trenner eingegeben habe.
Aus solchen Gründen vermeide ich überflüssige und von einer breiten Community mit Misserfolg getesteter Software: mysqlimport funktioniert bestens, awk existiert, …
Hallo Linuchs,
Stimmen denn die Einstellungen?
Bis demnächst
Matthias
Hallo
ich hoffe:
Ich habe versucht, das Problem mit dem Beispielcode nachzustellen. Ich habe auch die in deinem Screenshot gezeigten Einstellungen benutzt. Die einzigen Unterschiede gegenüber deinem Screenshot betreffen die Angabe des Tabellennamens und die Sache mit den Spaltennamen. Bei mir ist da eine Checkbox, die ich erst nach dem Test auf meinem Screenshot gesehen habe. Die haben sie oberhalb des Label-Texts allerdings auch gut versteckt.
Ergebnis: Ich konnte den Import durchführen, allerdings ist die erste Zeile der CSV-Datei mit den Spaltennamen wegen des Malheurs mit dem fehlenden Haken in der passenden Checkbox in Zeile 1 der Tabelle gelandet und die Spaltennamen sind generisch.
Es funktioniert grundsätzlich. Also gleich nochmal. Lösche dei Tabelle und setze in den Einstellungen den Haken für die Spaltennamen in der ersten Zeile.
Siehe da, es funktioniert. Die Spaltentypen und -größen ermittelt phpMyAdmin anhand der Inhalte der Spalten. So lautet zum Beispiel der Spaltentyp für die Spalte „sortier_nr“ varchar(2)
und der für „plz“ int
. Vielleicht kommt dein phpMyAdmin nach Analyse der Spalten mit den Inhalten der ersten Zeile durcheinander. Die ist ja anders aufgebaut, als alle anderen Zeilen.
Meine phpMyAdmin-Version ist die 5.0.2. In deinem Screenshot findet sich weder die Checkbox zur Übernahme der Spaltennamen aus der ersten Zeile noch das Eingabefeld für den Tabellennamen. Stattdessen findet sich ein Eingabefeld für die (offensichtlich) freie Eingabe von Spaltennamen.
Gib mal testweise die Spaltennamen in dem Eingabefeld ein (benutze die angebotene Hilfe für eventuell vorhandene Eigenheiten der dabei zu benutzenden Syntax), nimm die erste Zeile mit den „mitgelieferten“ Spaltennamen aus der CSV-Datei heraus und starte einen neuen Importversuch. Mal sehen, was dabei heraus kommt.
Tschö, Auge
Hallo Auge,
Meine phpMyAdmin-Version ist die 5.0.2. In deinem Screenshot findet sich weder die Checkbox zur Übernahme der Spaltennamen aus der ersten Zeile noch das Eingabefeld für den Tabellennamen.
Die fehlen, weil ich "Importieren" aus einer geöffneten DB-Tabelle heraus aufgerufen habe.
Bis demnächst
Matthias