Ankündigung

Einklappen
Keine Ankündigung bisher.

Mit LOCAL oder ohne für LOAD DATA INFILE

Einklappen

Neue Werbung 2019

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

  • Mit LOCAL oder ohne für LOAD DATA INFILE

    Hi,
    wie kann ich per PHP ermitteln, ob ich LOCAL für den SQL-Befehl LOAD DATA INFILE benötige oder nicht?
    Oder anders gefragt, gibt es eine Möglichkeit mit einfachen Mitteln im PHP Skript herauszufinden, ob MYSQL und Webserver die selbe Umgebung haben oder nicht.
    Bin ich z.B. bei einem Hoster ist das für mich nicht ersichtlich.

    Ziel der Übung: Eine Methode der ich das nicht explizit mitteilen muss.
    PHP-Klassen auf github


  • #2
    Zitat von jspit Beitrag anzeigen
    Hi,
    wie kann ich per PHP ermitteln, ob ich LOCAL für den SQL-Befehl LOAD DATA INFILE benötige oder nicht?
    Oder anders gefragt, gibt es eine Möglichkeit mit einfachen Mitteln im PHP Skript herauszufinden, ob MYSQL und Webserver die selbe Umgebung haben oder nicht.
    Ich sehe grad nicht wirklich, warum ein LOCAL in dieser Konstellation über PHP & Webserver überhaupt sinnvoll sein sollte. Was übersehe ich da grad?
    PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

    Kommentar


    • #3
      Wenn MYSQL und Webserver auf der selben Maschine laufen brauche ich kein LOCAL.
      Wenn jedoch der MySQL-Server ein anderer ist, besagt LOCAL eben das die Datei vom Webserver zu holen ist und nicht von der MySQL-Maschine. Oder sehe ich das falsch?
      PHP-Klassen auf github

      Kommentar


      • #4
        Zitat von jspit Beitrag anzeigen
        Wenn MYSQL und Webserver auf der selben Maschine laufen brauche ich kein LOCAL.
        Wenn jedoch der MySQL-Server ein anderer ist, besagt LOCAL eben das die Datei vom Webserver zu holen ist und nicht von der MySQL-Maschine. Oder sehe ich das falsch?
        Prinzipiell richtig, aber wenn Webuser und DB-User gleiche Rechte auf Dateien haben hätte ich schon Bauchschmerzen.

        Oder anders: auch wenn es physisch dieselbe Maschine ist muss nicht wirklich das von den Rechten her funktionieren.
        PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

        Kommentar


        • #5
          Die Rechte von PHP und mySQL sind ja in der Regel nicht gleich. Für MySQL ist es beim LOAD DATA INFILE wichtig, das die Datei gelesen werden kann. Dies muß von PHP-Seite, welche die Datei i.A. liefert, sichergestellt werden.
          PHP-Klassen auf github

          Kommentar


          • #6
            Zitat von jspit Beitrag anzeigen
            Die Rechte von PHP und mySQL sind ja in der Regel nicht gleich. Für MySQL ist es beim LOAD DATA INFILE wichtig, das die Datei gelesen werden kann. Dies muß von PHP-Seite, welche die Datei i.A. liefert, sichergestellt werden.
            Das ist jetzt von mir ins blaue geraten, da mir dies bisher nicht bekannt war. Aber wäre es nicht möglich das lesen der Datei durchzuführen und bei einem error anders vor zu gehen?
            Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

            Kommentar


            • #7
              Ein Lesen von PHP-Seite wird in der Methode schon gemacht. Das meinst du aber vermutlich nicht. Die SQL-Query einfach auf die DB loszulassen und im Fehlerfall einen anderen Weg zu probieren, so was liegt mir gar nicht.
              Es gibt noch einen zweiten Grund, dies nicht zu tun. Einige Systeme benötigen schon bei Erstellung der PDO-Instanz eine Erlaubnis für LOCAL als Optionsparameter
              PHP-Code:
              PDO::MYSQL_ATTR_LOCAL_INFILE => 1
              Auch deshalb hätte ich das gerne im Vorfeld abgeklärt.
              PHP-Klassen auf github

              Kommentar


              • #8
                Das kannst du über den Hostnamen feststellen (Umgebungsvariablen)

                Zitat von jspit Beitrag anzeigen
                Für MySQL ist es beim LOAD DATA INFILE wichtig, das die Datei gelesen werden kann. Dies muß von PHP-Seite, welche die Datei i.A. liefert, sichergestellt werden.
                Das kannst du nicht sicherstellen, als unpreviligierter Nutzer ist es schon mehr als kompliziert rauszufinden ob Nutzer X überhaupt zugirff auf die Datei hat.

                Kommentar


                • #9
                  Ist irgenwie blöd. Beim Hoster X brauch ich unbedingt ein LOCAL da es ohne nicht läuft,
                  auf der Plattform Y funktioniert es nur ohne LOCAL, und Server Z ist das egal.
                  Muß mich vermutlich damit abfinden, der Methode die Information LOCAL oder nicht per Option mitzugeben. Auch nicht so schlimm.
                  Danke schonmal für die Beiträge.
                  PHP-Klassen auf github

                  Kommentar

                  Lädt...
                  X