MySQL-Abfrage weiterleiten da kein externer Zugriff auf DB
KingPo
- perl
0 Horst0 Struppi
0 Alexander (HH)
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
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
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ß
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
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.
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
Moin Moin!
http://search.cpan.org/~timb/DBI-1.601/lib/DBD/Gofer.pm
Alexander