Codierung bei Load Data

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

  • Codierung bei Load Data

    hallo zusammen

    ausgangslage
    ein textfile wird auf einer windows 98 -er maschine erstellt und anschliessend mit php auf den server geladen und umbenannt. danach wird die upgeloadete textdatei mit dem LOAD DATA - befehl in eine tabelle einer mysql-datenbank reingeladen.

    server:
    php-version: 4.3.3
    mysql-version: 3.23.58

    das ganze hat bisher wunderbar funktioniert. doch nun dies:

    seit neustem ist die windows-textfile-erstell-maschine auf windows xp umgerüstet worden, und seither funzt es nicht mehr. komischerweise geht das LOAD DATA INTO ... mit phpMyAdmin schon. Kann es sein, dass phpmyadmin die codierung des textfiles ändert? oder woran könnte das problem noch liegen?

    PHP-Code:
    $sql "LOAD DATA INFILE 'upgeloadete_textdatei.txt' REPLACE INTO TABLE meinetabelle FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '' LINES TERMINATED BY '\r' "
    hoffentlich auf bald

    urukai

  • #2
    Hallo,
    wie sieht die Textdatei auf dem Windows 98 System und dem Windows XP System aus???
    mfg
    Günni


    Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
    Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
    Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
    City-Tiger - Online durch die Straßen tigern...

    Kommentar


    • #3
      Die datei ist eine ".txt" datei. die daten darin sind mit \t getrennt. die datei ist > 500 kb gross (ja, ich weiss)


      könnte es sein, dass die kodierung auf utf 8 eingestellt sein muss, wenn das textfile erstellt wird?
      Zuletzt geändert von urukai; 16.12.2003, 10:46.

      Kommentar


      • #4
        Hallo,
        ich möchte mich ja nicht beschweren, aber solltest du vielleicht nicht testdateien zum hier hochladen nehmen und nicht die Daten aus der DB... Datenschutz sag ich dazu nur...
        mfg
        Günni


        Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
        Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
        Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
        City-Tiger - Online durch die Straßen tigern...

        Kommentar


        • #5
          Nutze mal dies:
          PHP-Code:
          sql "LOAD DATA INFILE 'upgeloadete_textdatei.txt' REPLACE INTO TABLE meinetabelle FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '' LINES TERMINATED BY '\r' " or die(mysql_error()); 
          mfg
          Günni


          Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
          Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
          Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
          City-Tiger - Online durch die Straßen tigern...

          Kommentar


          • #6
            jep, da hast du schon recht. ich wollte eigentlich eine abgespeckte version drauftun, aber da hab ich gesehen, dass die kodierung gefragt wird, und dann wäre eventuell das beispiel nicht mehr "authentisch" gewesen, zumal ich auf mac arbeite. ich habs mittlerweile wieder entfernt.

            dann die fehlermeldung:

            Can't get stat of '/usr/local/psa/home/vhosts/restaurantsuche.ch/httpdocs/txt/restaurants.txt' (Errcode: 13)

            Kommentar


            • #7
              mysql> LOAD DATA INFILE '/path/to/your/tblpet.txt' INTO TABLE tblpet;
              ERROR 13: Can't get stat of '/path/to/your/tblpet.txt' (Errcode: 13)
              NOTE:
              All directories within the path to the target destination must be flagged 755
              or higher, otherwise mysql will not be allowed to access destination file.
              So if you run into this (ERROR 13) simply check each directory within the path
              and make sure of it's settings
              Link: http://www.mysql.com/doc/de/Loading_tables.html
              mfg
              Günni


              Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
              Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
              Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
              City-Tiger - Online durch die Straßen tigern...

              Kommentar


              • #8
                Hmmm. ich habe alle rechte überprüft und festgestellt, dass alle auf 777 gesetzt sind.

                Trotzdem krieg ich ne fehlermeldung.

                Can't get stat of '/usr/local/psa/home/vhosts/restaurantsuche.ch/httpdocs/txt/restaurants.txt' (Errcode: 13)

                dazu kommt: wenn die rechte nicht richtig gesetzt gewesen wären, dann wäre es ja zu zeiten des 98-windows-rechners auch nicht gegangen. damals funktionierte es aber gut.

                ich konnte kein textfile auftreiben, das noch mit dem 98-rechner erstellt wurde.

                [mitverlaub]ARGH![/mitverlaub]

                Kommentar


                • #9
                  nun habe ich doch eine lösung gefunden:

                  LOAD DATA LOCAL ...

                  und jetzt gehts wieder.

                  Wenn das LOCAL-Schlüsselwort angegeben wird, wird die Datei vom Client-Host gelesen. Wenn LOCAL nicht angegeben wird, muss die Datei auf dem Server liegen.
                  gefunden hier: http://www.mysql.com/doc/de/LOAD_DATA.html

                  ich begreifs trotzdem nicht ganz, wieso es jetzt geht, da doch die datei vorher auch schon auf dem server lag.

                  Kommentar

                  Lädt...
                  X