CSV Datei - SQL Problem

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

  • CSV Datei - SQL Problem

    HI Leute,

    folgendes: Ich möchte einige Datenbankeinträge per CSV in eine andere Datenbank übertragen. Das funkt auch schon wunderbar.

    Nur habe ich jetzt mal versucht, einen Eintrag, bei dem ein Wert "hehe : )" (also mit ner Klammer) war, zu übertragen und daher bekam ich einen SQL-Error, weil die Klammer da anscheinend nicht so reingepasst hat.

    Ich hab das ganze jetzt so gelöst:

    PHP-Code:
    for ($i 0$i count($array_file); $i++)
    {
        
    $array_file[$i] = addslashes($array_file[$i]);

    Jetzt geht's. Aber müsste dieses Problem dann nicht prinzipiell bestehen? Denn ich habe ja auch Scripte mit Formularen und wenn ich da jetzt z.B. in ein Textfeld reinschreibe "Dr. Maier (Geschäftsführer)", dann bekomme ich auch keinen Error. Werden Formulareingaben anders behandelt?

    Danke, Lukas

  • #2
    Jetzt geht's. Aber müsste dieses Problem dann nicht prinzipiell bestehen?
    ja.

    aber das hängt wieder von einigen faktoren ab.

    i.d.r. werden formulardaten bereits mit addslashes übergeben. get_magic_quotes_gpc() kann dir sowas verraten.

    wenn du daten für die DB escapen willst, nimm nicht den addslashes, sondern eher mysql_escape_string().

    für weitere details kannst du das forum befragen. das thema ist nicht so neu.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      hallo jungs und mädels

      ich habe ebenfalls ein problem beim import einer csv datei
      kopiert habe ich euch mal die fehlermeldung und die ersten beiden zeilen der csv datei


      MySQL meldet:
      #1064 - 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 'id,Player,Team,Jersey,Position,Games,Goals,Assists,Points,PIM,D


      id, Player, Team, Jersey, Position, Games, Goals, Assists, Points, PIM, Differenz, PPG, SHG, GWG, GTG, Shots, S, FOW, FOT, GV, TK, Min, Hits, Height, Weight, Shoots, "1,R. Abid,SJ,34,LW,17,1,0,1,6,-8,0,0,0,0,32,3.1%,0,0,0,0,243,15,6' 2"",210 lbs,L," "


      könnt ihr damit etwas anfangen und mir weiterhelfen ?

      Kommentar


      • #4
        ähm ... wo fängt die 2. Zeile an? ausserdem mußt du beim Import sagen, dass die 1. überspungen werden soll, weil sie die Spaltenköpfe enthält

        Kommentar


        • #5
          hab die datei von jmd. bekommen und einfach im phpmyadmin importieren wollen (die datei wird in ea's nhl2004 geschrieben)

          die 2. zeile müsste wohl hier beginnen:
          id, Player, Team, Jersey, Position, Games, Goals, Assists, Points, PIM, Differenz, PPG, SHG, GWG, GTG, Shots, S, FOW, FOT, GV, TK, Min, Hits, Height, Weight, Shoots, "
          1,R. Abid,SJ,34,LW,17,1,0,1,6,-8,0,0,0,0,32,3.1%,0,0,0,0,243,15,6' 2"",210 lbs,L," "

          hab bisher nie mit solchen dateien gearbeitet. beim normalen sql import müsste da auf alle fälle n semikolon fehlen.
          daher weiß ich jetz nich inwiefern das vom phpmyadmin selbständig gemacht wird

          Kommentar


          • #6
            seufz, du postest fast das gleiche und sagst nun das wäre die 2. Zeile, wogegen du anfangs sagtest, es wären 2 Zeilen, was ist denn nun? Trenne die 2 Zeilen richtig, mit mehreren Absätze.

            Kommentar


            • #7
              sry
              hab nommal beide zeilen gepostet - diesmal mi absatz
              es sind die ersten beiden der csv datei - daraus soll werden:

              1. tab.kopf
              id, Player, Team, Jersey, Position, Games, Goals, Assists, Points, PIM, Differenz, PPG, SHG, GWG, GTG, Shots, S, FOW, FOT, GV, TK, Min, Hits, Height, Weight, Shoots, "

              2. erste zeile
              1,R. Abid,SJ,34,LW,17,1,0,1,6,-8,0,0,0,0,32,3.1%,0,0,0,0,243,15,6' 2"",210 lbs,L," "

              darunter kommen noch 824 weitere einträge die lass ich mal lieber weg

              Kommentar


              • #8
                1. du mußt wahrscheinlich manuell importieren, schau dir dazu LOAD DATA http://dev.mysql.com/doc/mysql/en/load-data.html an

                2. die Daten ab der 2. Zeile, zu mindest die Stringdaten, müssen zwischen " gepackt werden, sonst kann man nicht importieren. Ich denke, dass du das schnell über Excel o.ä. erledigen kannst.

                Kommentar


                • #9
                  Hallo,

                  da ich wieder dieses Problem habe, knüpf ich auch gleich mal hier an

                  damals habe ich die paar daten per hand eingetragen. Ich habe nun aber über 10.000 zeilen und das ist ein bisschen sehr aufwendig :/

                  die daten sind derzeit in excel. und zwar in der form:

                  id | daten2 | name
                  1 | ... | ...

                  die erste zeile soll die spaltentitel darstellen, die 2. zeile den ersten datensatz.
                  um mir das ganze mal genauer zu betrachten, habe ich mal eine bestehende SQL tabelle als Ecxel Datei exportiert. Die sieht vom Prinzip her genauso aus - auch alle einträge ohne ''.

                  MySQLadmin zeigt beim upload der datei immer folgendes an:
                  PHP-Code:
                  Möglicherweise haben Sie einen Bug im SQL-Parser entdeckt.
                  Bitte überprüfen Sie Ihre Abfrage genaustensinsbesondere auf falsch
                  gesetzte oder nicht geschlossene Anführungszeichen
                  Eine weitere
                  Ursache könnte darin liegen
                  dass Sie versuchen eine Datei mit binären
                  Daten
                  welche nicht von Anführungszeichen eingeschlossen sind,
                  hochzuladenSie können alternativ versuchen Ihre Abfrage über das
                  MySQL
                  -Kommandozeileninterface zu senden. Die MySQL-Fehlerausgabe,
                  falls vorhandenkann Ihnen auch bei der Fehleranalyse helfenFalls Sie
                  weiterhin Probleme haben sollten oder der Parser dort versagt
                  wo die
                  Kommandozeile erfolgreich istso reduzieren Sie bitte Ihre Abfrage auf den
                  Befehl
                  welcher die Probleme verursachtund senden Sie uns einen
                  Bugreport mit den Datenausschnitt
                  den Sie weiter unten auf dieser Seite finden
                  darunter folgt dann nur noch buchstabensalat. kein eindeutiger fehler.

                  genau das gleiche passiert, wenn ich die daten als excel datei, allerdings mit '' hochlade.
                  CSV und XML dateien rufen den gleichen fehler hervor.

                  und da ich jetz allmählich ratlos bin, frag ich doch mal die profis

                  wenn ihr irgendeine andere variante für den import habt, gern. ich bin da für alles offen. ich will nur nich alles per hand bearbeiten/eintragen :/

                  Kommentar


                  • #10
                    zeig doch einmal ein paar zeilen der zu importierenden daten.
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      bitte schön

                      id , bundesland_id , land_id , plz , stadt
                      18 , 14 , 1 , 01097 , Dresden
                      19 , 14 , 1 , 01099 , Dresden
                      20 , 14 , 1 , 01109 , Dresden


                      id, bundesland_id etc. sind jeweils eine spalte. die daten darunter jeweils eine zeile.
                      wenn ich eine bestehende tabelle als excel datei exportiere, sieht das genauso aus. wie bereits gesagt, ohne jegliche ''.
                      aber selbst wenn ich die daten hier je mit '' versehe und importiere, erscheint der gleiche komische fehler.


                      EDIT
                      sry, das sieht n bissl merkwürdig aus. kann es nich wirklich ordentlich formatieren
                      Zuletzt geändert von DasUNBEKANNTe; 07.09.2006, 20:26.

                      Kommentar


                      • #12
                        warum hängst du dann nicht einfach einen kleinen schnipsel an das posting dran?

                        wenn deine daten als quasi txt/csv abgelegt sind, sollte ein import problemlos in eine entsprechend vorhandene tabelle funktionieren.
                        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                        Kommentar


                        • #13
                          also ich muss ja mal sagen, dass ich eure antworten (auch wenn sie teilweise rätselhaft sind) gut finde, weil ihr damit das selbst-denken fördern wollt. find ich toll und hat mir bisher auch ganz gut geholfen.

                          allerdings weiß ich nich genau, was du mit mir mit "schnipsel" sagen willst. hab eben noch ein wenig probiert. hat leider nich zum gewünschten erfolg geführt

                          muss jetzt leider erstmal los und probier dann morgen abend noch ein wenig. ansonsten meld ich mich morgen noch mal in der hoffnung auf weitere einzelheiten

                          danke fürs erste

                          Kommentar


                          • #14
                            nunja... irgendwas willst du ja aus excel exportieren. also z.b. in eine csv. und hier hätte ich gerne mal ein paar zeilen gesehen.
                            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                            Kommentar


                            • #15
                              asoooooo
                              da hatte ich wohl n brett vor'm kopf - das hab ich nämlich nich so verstanden

                              hab jetzt mal n kleinen auszug angehangen
                              Angehängte Dateien

                              Kommentar

                              Lädt...
                              X