Ankündigung

Einklappen
Keine Ankündigung bisher.

Load_data infile

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

  • Load_data infile

    Liebes Forum

    ich verzweifle langsam an dem folgenden kleinen Programm:
    Code:
    <?php
    
    // KONSTANTEN
    
    $db_host     = "localhost";
    $db_database = "db_load_data_test";
    $db_user     = "root"; 
    $db_password = "*****";
    
    $connect = mysqli_connect($db_host, $db_user, $db_password,  $db_database);
    
    // Tabelle erstellen
    $sql ="CREATE TABLE IF NOT EXISTS tmp_x (id int, ttt text)";
    $result = mysqli_query($connect, $sql);
    
    
    $sql = "LOAD DATA LOCAL INFILE 'F:\xampp\htdocs\TOOLS\csv_per_sql_in_Tabelle\load_test.csv' INTO TABLE tmp_x
            FIELDS TERMINATED BY ';'
            LINES TERMINATED BY '\r\n'
            IGNORE 1 LINES";
    
    $result = mysqli_query($connect, $sql);
    
    
    mysqli_close($connect);
    
    ?>
    Die Tabelle tmp_x wird erstellt, aber es werden keine Datein eingefügt. Die Datei load_test.csv ist natürlich vorhanden. Was ist daran falsch ?

    Liebe Grüße

    Kerstin


  • #2
    Exakte Hinweise auf die Fehlerursache entnehmen Sie bitte wie immer der Fehlermeldung.
    PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

    Kommentar


    • #3
      Es gibt keine Fehlermeldung, die hätte ich sonst hier hingeschrieben. Das Script ist also syntaktisch wohl richtig.

      Es werden nur keine Daten eingefügt.

      Kommentar


      • #4
        Ja, nee, is klar. Du gibst sie ja auch nicht aus.
        PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

        Kommentar


        • #5
          Alles klar.

          Kommentar


          • #6
            Also lokal funktioniert es jetzt. Der Fehler war der Backslash im Pfad (es muss ein / sein, da Windows).

            Jetzt habe ich es auf dem richtigen Server versucht. Und es wird wieder nur die Tabelle erstellt und keine Datein eingefügt.

            Das php-Script ist weiterhin local.

            Kommentar


            • #7
              Fehlermeldung auslesen.

              http://php.net/manual/de/mysqli.error.php

              Kommentar


              • #8
                ok, ich habe jetzt die Fehlermeldung:

                Code:
                The used command is not allowed with this MariaDB version
                Aber welches Kommando und wie kann ich es trotzdem verwirklichen ?

                Kommentar


                • #9
                  Ist Google kaputt?

                  https://stackoverflow.com/questions/...ariadb-version

                  Kommentar


                  • #10
                    aha, ok, dann scheint das LOCAL bei mir nicht zu gehen.

                    Dann schiebe ich die csv eben auf den Server.

                    Das sql habe ich entsprechend angepasst:

                    Code:
                    $sql = "LOAD DATA INFILE '/httpdocs/tools/csv_per_sql_in_Tabelle/load_test.csv' INTO TABLE tmp_x
                            FIELDS TERMINATED BY ';'
                            LINES TERMINATED BY '\r\n'
                            IGNORE 1 LINES";
                    Aber, es ist zum aus der Haut fahren, jetzt kommt diese Fehlermeldung:

                    Code:
                    Access denied for user 'web177'@'%' (using password: YES)
                    Die Datenbankverbindung hat aber eigentlich geklappt, da die Tabelle im ersten Schritt erstellt wurde.Oder gilt das vielleicht für den Zugriff auf die Datei ?

                    Kommentar


                    • #11
                      https://stackoverflow.com/questions/...nfile-in-mysql

                      Kommentar


                      • #12
                        naja, der Tipp, doch LOCAL einzufügen scheitert leider daran, dass LOCAL offensichtlich in meiner Server-Umgebung nicht unterstützt wird. Dann kommt wieder die Fehlermeldung:
                        Code:
                        The used command is not allowed with this MariaDB version
                        Gibt es dannüberhaupt eine Möglichkeit bei mir, LOAD DATA INFILE zu nutzen ?

                        Kommentar


                        • #13
                          Ich habe jetzt einen einfachen und schnellen Weg gefunden: Einfach per phpmyadmin importieren. Ich hatte irgendwie gedacht, dass ginge nur mit sql Dateien, geht aber genauso gut mit csv.
                          Blöd, dass ich nicht schon früher darauf gekommen bin.

                          Viele Grüße

                          Kerstin

                          Kommentar


                          • #14
                            Zitat von Kerstin83 Beitrag anzeigen
                            Ich habe jetzt einen einfachen und schnellen Weg gefunden: Einfach per phpmyadmin importieren. Ich hatte irgendwie gedacht, dass ginge nur mit sql Dateien, geht aber genauso gut mit csv.
                            Blöd, dass ich nicht schon früher darauf gekommen bin.
                            Wenn dus sowieso manuell machst, warum hast du dann überhaupt PHP verwendet? Einfach den Import mit dem MySQL-Client auf der Command LIne ausführen. PHP wäre hier nur ein unnötiger Umweg.

                            Kommentar


                            • #15
                              Genau !!

                              Kommentar

                              Lädt...
                              X