CSV Datei in MySQL importieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • CSV Datei in MySQL importieren

    Hi, hab schon länger hier im forum gesucht, nur leider haben alle Antworten bei mir nicht geholfen!
    Hoffe ihr könnt mir weiter helfen:

    Ich möchte eine csv datei in meine DB importieren. Script und file liegen im gleichen verzeichnis auf dem server.

    hier das script, hoffe ihr könnt mir helfen:
    PHP-Code:
    $db_MenuTitle[0]  = "Eintrag 1";         // Bezeichnung des Eintrags 
    $db_Hostname[0]   = "localhost";         // Datenbank-Host           
    $db_UserName[0]   = "";                  // Benutzername           
    $db_Password[0]   = "";                  // Zugehoeriges Passwort
    $db_Database[0]   = "";                  // Datenbank
    $db_Table[0]      = "termine_roh";                  // Table, in den die CSV
    $db_File[0]       =  "termine.csv";                  // Verzeichnispfad 


              
    $select_db 0;
     

                
    // Connect zur Datenbank
                
    mysql_connect($db_Hostname[$select_db], $db_UserName[$select_db], 
    $db_Password[$select_db]) || 
    die(
    "Can't Connect to Database: ".mysql_error());
                
    mysql_select_db($db_Database[$select_db]);



                
    // CSV-Datei in die Datenbank übertragen
                
    $fp fopen ("termine.csv","r");
                
    $sql2 "LOAD DATA LOCAL INFILE '$fp' INTO TABLE termine_roh 
    FIELDS TERMINATED BY ','
    OPTIONALLY ENCLOSED BY '\"' 
    ESCAPED BY '\\' 
    LINES TERMINATED BY '\r\n'"
    ;
               
    $result mysql_query($sql2);
               echo  
    mysql_error();
               echo 
    $result
    als fehlermeldung bekomme ich:

    You have an error in your SQL syntax.
    Check the manual that corresponds to your MySQL server version for the right syntax
    to use near ''' at line 2
    Schonmal Danke für eure Hilfe!!
    EDIT:
    TobiaZ macht seine Umbrüche jetzt selber!
    Zuletzt geändert von Majestic; 18.10.2004, 21:54.

  • #2
    Re: CSV Datei in MySQL importieren

    und was steht in zeile zwei der CSV-datei ...?
    (und in der davor/paar danach.)
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      folgender Inhalt:

      [QUOTE]
      "01.10.2004","Bruchsal","Fabrik","Alternative mit DJ Mütze & DJ Matt Nu-Metal, X-Over, Independent Eintritt frei 21:00 - 4:00 Uhr"
      "01.10.2004","Frankenthal","B9 - ehem. FUN","Ladys Night (Ladys erhalten freien Zutritt + 2 Freigetränke im Wert von je bis zu 3,00.-)"
      "01.10.2004","Frankfurt","U 60311","6 Jahre U60311 pt.1 CARI LEKEBUSCH (Stockholm), CHRIS LIEBING (CL Recordings), MONIKA KRUSE (Terminal M), PIERRE & MARKY"
      "01.10.2004","Heidelberg","8 Grad","HOUSE OF LOVE - DJ Jerome - ab 22h"
      QUOTE]

      wenn ich das file im phpmyadmin einfüge klappt es ohne problem.
      hab auch die funktion fürs importieren "load data in ..." aus dem phpmyadmin kopiert!

      Kommentar


      • #4
        Re: CSV Datei in MySQL importieren

        OK, seh grade, der fehler liegt in deinem script, nicht in den daten.
        PHP-Code:
        $fp fopen ("termine.csv","r");
        $sql2 "LOAD DATA LOCAL INFILE '$fp' INTO TABLE... 
        du versuchst, einen dateizeiger an mysql zu übergeben - das kann natürlich nicht klappen.
        davon, dass du in PHP eine datei geöffnet hat, weiß mysql selbstverständlich nichts.

        bei LOAD DATA INFILE musst du den dateinamen angeben.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          habs jetzt soweit abgeändert:
          PHP-Code:
          $datei "termine.csv";
                      
          $sql2 "LOAD DATA LOCAL INFILE '$datei' INTO TABLE termine_roh 
          FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' 
          ESCAPED BY '\\' LINES TERMINATED BY '\r\n'"

          geht aber immer noch nicht, wiederrum der gleiche fehler!

          EDIT:
          TobiaZ macht seine Umbrüche jetzt selber!
          Zuletzt geändert von TobiaZ; 18.10.2004, 21:50.

          Kommentar


          • #6
            Wäre es dir möglich, deinen Code evtl. vernünftig und sinngemäß umzubrechen?

            Oder hast du einen 2000px Bildschirm?

            Außerdem wäre es sinnvoll, wenn du die Query, die an die DB gesendet wird, postest, und nicht den PHP-Code mit Variablen.

            Kommentar


            • #7
              so hier die query:

              LOAD DATA LOCAL INFILE 'termine.csv' INTO TABLE termine_roh FIELDS TERMINATED BY ','
              OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\' LINES TERMINATED BY ' '

              Kann es sein, das es an der letzten Anweisung liegt? Also dem Lines Terminated by ' '

              da sollte nämlich" \r\n" stehen



              Entschuldigt bitte den vergessenen Zeilenumbruch!

              Kommentar


              • #8
                wenn ich deinen code eingebe, bekomme ich die fehlermeldung in zeile 6 statt in zeile 2!

                Kommentar


                • #9
                  sorry, hatte es deswegen wieder gelöscht.

                  Code:
                  LOAD DATA 
                  LOCAL INFILE 'termine.csv' 
                  INTO TABLE termine_roh 
                  FIELDS TERMINATED BY ','
                  OPTIONALLY ENCLOSED BY '"' 
                  ESCAPED BY '\\' 
                  LINES TERMINATED BY '\n'
                  so sah er aus, richtig?

                  Dann weißt du jetzt schonmal, wo der Fehler im Code liegt. Nimm mal bitte den gleichen code, aber escape mal bitte den \ in escaped by.

                  Im Manual hab ich was gelesen, dass die Zeichen in ESCAPED BY, LINES TERMINATED BY escaped werden müssen. wäre mal n versuch.

                  Kommentar


                  • #10
                    escapen!?
                    sorry bin noch relativ neu im mysql

                    Kommentar


                    • #11
                      \ davor setzen

                      Kommentar


                      • #12
                        aso das hab ich!
                        ESCAPED BY '\\'

                        Kommentar


                        • #13
                          nein, nicht nur den \ sondern den \ vor ein Zeichen. Lies mal selber im Manual, habs jetzt so genau nicht auf Lager.

                          Kommentar


                          • #14
                            sorry wurd wohl nicht richtig dargestellt:

                            ESCAPED BY '\\' also zweimal "\"

                            Kommentar


                            • #15
                              LOAD DATA
                              LOCAL INFILE 'termine.csv'
                              INTO TABLE termine_roh
                              FIELDS TERMINATED BY ','
                              OPTIONALLY ENCLOSED BY '"'
                              ESCAPED BY '\\'
                              LINES TERMINATED BY '\n'

                              Klappt bei mir wunderbar!

                              Kommentar

                              Lädt...
                              X