LOAD DATA LOCAL INFILE MySQL/PHP Problem

Hier ist meine MySQL-Tabelle Struktur

id    |   tracking_number   |   order_id

Hier ist die Struktur der CSV-Datei:
(Manchmal ist die order_id fehlt, und das scheint Probleme verursacht)

"1R2689Y603406","33097"
"1R2689Y603404","33096"
"1R2689Y603414",
"1R2689Y603429","33093"
"1R2689Y603452",

Hier ist meine aktuelle SQL-Abfrage, die nicht funktioniert:
(Die Datei ist hochgeladen und wird richtig gelesen, es ist die Abfrage selbst, die Probleme verursachen)

        $sql = 'LOAD DATA LOCAL INFILE "'.$_FILES['my_file']['tmp_name'].'" 
        INTO TABLE table_tracking
        FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY "\""
        LINES TERMINATED BY "\n" 
        (tracking_number,order_id)';

        mysql_query($sql) or die(myqsl_error());

Was ist falsch mit meiner Abfrage? Vielen Dank für jede Hilfe!!!

Edit: Geändert CSV-Struktur zu repräsentieren fehlende Daten, die manchmal Auftritt.
Geändert Abfrage übereinstimmen, die ich bin jetzt mit

  • Was ist der eigentliche Fehler, den Sie haben? Oder die tatsächliche unerwartete Verhalten?
  • Die Informationen, die laden nicht in der Datenbank.
  • versuchen mysql_query(...) or die (mysql_error()); und sagen Sie uns, was Sie sehen.
  • PHP wird zum konvertieren der \n zu einer tatsächlichen linebreak bevor MySQL überhaupt sieht diese Abfrage, müssten Sie \\n in diesem Fall. Die Standardeinstellung für LINES TERMINATED BY ist ein Zeilenumbruch sowieso, so dass Sie eigentlich nicht haben, um es zu spezifizieren.
  • Beachten Sie, dass MySQL verwendet Schrägstriche / für Dateinamen, auch auf windows.
  • Der Dateipfad korrekt ist, wird die Datei hochladen und Lesen von der Abfrage.
  • Ich denke, wir brauchen mehr Tests. Überprüfen Sie mit einer einzigen Zeile der Datei. Auch versuchen Sie den Import der CSV mit phpmyadmin, vielleicht ist es ' ll sagen, wo es scheitert.
  • Das Problem war, dass ich brauchte /r/n als meine line terminator.
  • Ah ok. Problem dann gelöst.

InformationsquelleAutor kylex | 2011-10-10
Schreibe einen Kommentar