RaMa: phpMyAdmin: CSV importieren mit LOAD DATA geht nicht

Hallo allerseits,
ich hab gerade ein etwas seltsames Problem. Wenn ich eine CSV-Datei mit phpMyAdmin 2.11.9.3 über "CSV mit LOAD DATA" importieren will, kommt folgende Meldung:

Der Import wurde erfolgreich abgeschlossen, 1 Abfragen wurden ausgeführt.

Der ausgegebene SQL-Anweisung sieht so aus:
LOAD DATA LOCAL INFILE '/tmp/phpOOqlnv' INTO TABLE table FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n'# MySQL lieferte ein leeres Resultat zurück (d. h. null Zeilen).

D.h., es wird tatsächlich nichts importiert!

Dies ist die Tabellenstruktur.

CREATE TABLE IF NOT EXISTS `table` (  
  `col1` text NOT NULL,  
  `col2` int(11) NOT NULL,  
  `col3` text NOT NULL,  
  PRIMARY KEY (`genID`)  
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Selbst wenn die CSV-Datei nur diesen einen Beispieldatensatz enthält (selbstverständlich als UTF8 gespeichert), taucht dieser anschliessend nicht in der Datenbank auf.
"test";1234;"test"

Kann doch irgendwie nicht sein oder?

Bin für jeden konstruktiven Beitrag dankbar.

Rainer

  1. Hi,

    Bin für jeden konstruktiven Beitrag dankbar.

    die CSV-Datei liegt auch tatsächlich da, wo der SQL-Server sie sucht?

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. die CSV-Datei liegt auch tatsächlich da, wo der SQL-Server sie sucht?

      Cheatah

      Das hoffe ich mal stark. Sowohl phpMyAdmin als auch MySQL sind vom Provider bereitgestellt. Vielleicht sollte ich dort mal nach der Konfiguration fragen.

      Aber müsste es dann nicht eine Fehlermeldung ala "File not found" o.ä. geben? Der Server verhält sich imho so, als hätte er eine leere statt gar keiner Datei eingelesen. Die Datei ist aber nicht leer.

      Rainer

      1. Hi,

        Aber müsste es dann nicht eine Fehlermeldung ala "File not found" o.ä. geben?

        mangels Erfahrung mit dem Thema kann ich Dir das leider nicht sagen. Möglicherweise fehlt aber auch einfach nur ein OPTIONALLY zum ENCLOSED BY.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
    2. Hello,

      Bin für jeden konstruktiven Beitrag dankbar.

      die CSV-Datei liegt auch tatsächlich da, wo der SQL-Server sie sucht?

      Darf der SQL-Server sie da überhaupt suchen?
      Sitzt eventuell noch jemand auf der Datei drauf?
      Mit welchen Attributen bzw. Flags wurde die Datei angelegt?

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
       ☻_
      /▌
      / \ Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
      1. Hallo Tom,

        die CSV-Datei liegt auch tatsächlich da, wo der SQL-Server sie sucht?
        Darf der SQL-Server sie da überhaupt suchen?

        Ja. Sie wird ihm ja vom Client verfüttert!
        Hier ist Client der Webserver :-)

        Wenn mindestens einer der beiden Beteiligten es nicht darf, muss es zur Fehlermeldung

        ERROR 1148: The used command is not allowed with this MySQL version

        kommen. Der OP sagt jedoch ausdrücklich, dass es nicht zu einer Fehlermeldung kommt, sondern der Befehl erfolgreich abgeschlossen wird. Daraus folgere ich, dass Client und Server beide dürfen :-)

        LOAD DATA LOCAL ...

        Siehe Handbuch, Security Issues with LOAD DATA LOCAL

        Es könnte jedoch sein, dass die Zeile mit \r\n abgeschlossen sind, während das Statement angibt, die Zeile sei mit \n abgeschlossen.

        Freundliche Grüße

        Vinzenz

    3. Moin Moin!

      die CSV-Datei liegt auch tatsächlich da, wo der SQL-Server sie sucht?

      Ich würde mal raten, dass die Datei via phpMyAdmin in einem Formular hochgeladen wurde, und dass phpMyAdmin durchaus weiß, wie seine Temp-Dateien heißen. Insbesondere der Name "/tmp/phpOOqlnv" im SQL klingt sehr nach einem Upload.

      Alexander

      --
      Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".