KingPo: MySQL-Abfrage weiterleiten da kein externer Zugriff auf DB

Hallo Community,

ich habe da mal folgendes Problem und noch keine Lösung (google, Forum) gefunden.

Ich möchte Local auf meinem Rechner ein Perl-Programm mit Win32::GUI laufen lassen. In diesem Programm sollen auch Datenbankabfragen stattfinden.
JEDOCH soll die MySQL Datenbank zentral auf einem Server im web liegen (da das Programm auch auf anderen Rechnern local laufen soll)

Nun unterstützen fast alle Provider keine MySQL-DB mit externen zugriff.

Jetzt meine Frage:

Ist es irgendwie möglich die MySQL-Anfrage local aus dem Programm an ein CGI/Perl-Script auf dem Server im Web zu stellen damit er dann intern die Anfrage an die DB stellt und dann das Ergebnis zurückgibt?

Danke für Tips und hilfe

  1. Hallo,

    Ist es irgendwie möglich die MySQL-Anfrage local aus dem Programm an ein CGI/Perl-Script auf dem Server im Web zu stellen damit er dann intern die Anfrage an die DB stellt und dann das Ergebnis zurückgibt?

    Ja klar: Du hast das gerade eben bei Deinem POST gemacht.

    Lokales Programm: Browser
    Transport: HTTP zum Webserver
    CGI <=> MySQL
    Transport: HTTP zurück zum Browser.

    Viele Grüße,
    Hotte

    1. Ja klar: Du hast das gerade eben bei Deinem POST gemacht.

      Lokales Programm: Browser
      Transport: HTTP zum Webserver
      CGI <=> MySQL
      Transport: HTTP zurück zum Browser.

      ja schon klar :-)

      aber mir fehlt derzeit das Verständnis wie das sinnvoll ablaufen kann.

      Ich will ja vermeiden ständig eine URL mit nen Affenschwanz an informationen aufzurufen...

      NORMALERWEISE würde es ja so ablaufen:
      use CGI;
      use DBI;

      my $DB_NAME = "Produkte";
      my $DB_DSN = "DBI:mysql:database=$DB_NAME";
      my $DB_USER = "";
      my $DB_PASSWD = "";

      my $dbh = DBI->connect($DB_DSN, $DB_USER, $DB_PASSWD) or die "Fehler bei Datenbankverbindung: $!";

      my $SQL_Statement = "SELECT nummer, name, beschreibung FROM produktdaten ".
                          "WHERE produktdaten.nummer >= ".$cgi->param($von_Nummer).
                          " AND produktdaten.nummer <= ".$cgi->param($bis_Nummer).
                          " ORDER BY ".$cgi->param($sortier_feld);

      my $Abfrage = $dbh->prepare($SQL_Statement);
      $Abfrage->execute();

      my @Datensatz;
      while(@Datensatz = $Abfrage->fetchrow_array()) {
        DatensatzVerarbeiten(@Datensatz);
      }
      ------------------------
      gesetzt den Fall ich greife intern auf die DB zu...

      Klar könnte ich das SQL-Statement per ULR an das CGI-Script senden

      Aber wie kommt der ganze Affenschwanz (@Datensatz) zurück???
      das können ja wer weißwieviele daten sein...

      ich meine Du hast es ganz simpel beantwortet meine Frage, EVTL. stell ich es mir auch zu kompliziert vor???

      Danke & gruß

      1. aber mir fehlt derzeit das Verständnis wie das sinnvoll ablaufen kann.

        Mit LWP::UserAgent kannst Du POST-Requests versenden und deren Antwort auswerten, ganz ohne Rattenschwanz.

        Aber wie kommt der ganze Affenschwanz (@Datensatz) zurück???

        Indem Du die Daten serialisierst, z.B. mit Data::Serializer oder was simplerem, z.B. serialize.pm.

        Siechfred

        --
        Coping With Scoping (Deutsche Übersetzung)
        Als Moderator habe ich keinerlei Humor, von dem ich wüsste.
  2. Nun unterstützen fast alle Provider keine MySQL-DB mit externen zugriff.

    Wie kommst du auf fast alle? Bei Hosteurope z.b. geht das.

    Struppi.

    1. Nun unterstützen fast alle Provider keine MySQL-DB mit externen zugriff.

      Wie kommst du auf fast alle? Bei Hosteurope z.b. geht das.

      Struppi.

      naja! ;-) FAST alle...

      nicht alle *g* aber fast

  3. Moin Moin!

    http://search.cpan.org/~timb/DBI-1.601/lib/DBD/Gofer.pm

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".