Von PHP aus SQL Datei auf PostgreSQL Datenbank ausführen

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

  • Von PHP aus SQL Datei auf PostgreSQL Datenbank ausführen

    Hallo,

    wenn ich mich per

    "psql dbname" einlogge, dann kann ich von der Shell aus

    "\i Dateiname.sql" eingeben, damit die in "Dateiname" befindlichen SQL Befehle ausgeführt werden... (sind recht viele...)

    Nur krieg ich es nicht gebacken, per PHP diesen Befehl einzugeben...
    Mein Skript:


    ...
    If ($mnmdb)
    {
    echo "Verbindung erfolgreich!!!!<br>";
    $update = pg_query($mnmdb, "\i Dateiname.sql");
    If ($update)
    {
    echo "Befehle in Dateiname.sql wurden ausgeführt!<BR><BR>";
    }
    else
    {
    echo "Befehle in Dateiname.sql wurden NICHT ausgeführt!!<BR><BR>";
    }


    pg_close($mnmdb);
    echo "Verbindung wurde beendet!!!";

    }
    Else
    {
    echo "Connection Failed!!!";
    }
    ?>


    Könnt Ihr mir da vielleicht weiterhelfen?
    Vielen Dank!

    Wassim

  • #2
    Crosspostings sind hier nicht erwünscht ... deshalb habe ich den anderen Thread gelöscht ... !
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      Sorry...

      Hi Goth!

      Das war von mir auch nicht so geplant, zwei gleiche Postings einzutragen, aber ich habe erst zu spät bemerkt, dass ich den ersten nicht löschen darf.

      Sorry nochmal.

      Wassim

      Kommentar


      • #4
        pg_query erwartet in 2. Argument einen String nicht eine Datei, s. http://de3.php.net/manual/en/function.pg-query.php
        du kannst aber z.B. die Datei öffen, Inhalt auslesen, und an pg_query übergeben.

        Kommentar


        • #5
          Hi!

          So habe ich das Problem dann auch gelöst... ich hatte nur gehofft, dass es auch mit einer Datei direkt gehen würde.
          Vielen Dank!

          Wassim

          Kommentar


          • #6
            das war eine bl*de Hoffnung . Du kippst ja auch kein Diesel in einem Benziner, um zu hoffen, dass das Auto sparsamer fährt, oder tutst du das?

            Sowas unüberlegtes darfst du dir als Progger eigentlich nicht erlauben. Es sei denn, du willst dich unbedingt im Team blammieren

            Kommentar


            • #7
              Naja... das kann man sehen wie man will. Klasse Vergleich nebenbei bemerkt .
              Nein, versteh mich bitte nicht falsch. Der Punkt ist folgender. Ich kann mir selbstverständlich für alles ein extra Skript schreiben um danach im team anzugeben dass ich das Rad 127 mal neu erfunden habe. Mein Anliegen war nur das folgende:
              Hätte es mit dem üblichen Postgres \i Befehl geklappt, dann hätte ich
              1. Zeit gespart (zugegeben ... ist zu vernachlässigen)

              2. mir das Skript zum Auslesen der Datei sparen können was meiner Meinung nach (und ich hoffe Du stimmst mir da zu) eher ein Umweg zur Lösung meines Problems ist. (Ich weiß dass sich bisher Punkt 2 nicht viel von Punkt 1 unterscheidet, aber das wesentliche kommt noch...)
              Dieser Umweg beinhaltet mehr Code, ist demnach sicherlich nicht so durchsichtig wie der \i Befehl, und wäre eine potentielle Fehlerquelle mehr.
              Von der Wartung mag ich ja gar nicht reden bei so wenig Code.

              Nun bin ich natürlich von meinem Code überzeugt... es funzt ja auch alles genau so wie ich mir das vorstelle, aber ICH finde es schade, dass man die "internal slash commands" von PostgreSQL nicht von PHP aus nutzen kann. Sind teilweise wirklich sinnvoll.

              Sorry, dass ich Dich jetzt belabert habe, aber ich wollte Dir nur erklären wo ich den Vorteil sehe bei der Benutzung von \i über PHP.

              Sollte ich mich beim team blamiert haben, dann verweise ich dezent auf meinen Forum-Status (Newbie). Ich hätte meinen Post auch beginnen können mit :
              "Hi, ich bin in PHP ein totaler Neuling, und hab da ne Frage die für Euch sicher ganz leicht zu beantworten ist..."
              dann hätte die Frage zu dumm oder zu bl*d gar nicht sein können und ich hätte mich nicht blamiert, aber egal.
              Aber dennoch danke für den Tip asp2php.

              Vielen Dank für die Hilfe!

              Viele Grüße,

              Wassim

              Kommentar

              Lädt...
              X