pcw: Perl auf Mysql

Beitrag lesen

Versuch's einfach so:
die als SQLFORM.CGI
#!E:/Perl/bin/perl -w
use CGI;
use CGI qw(:standard);
use DBI;
use strict;
my $quiet = 1;
my @drivers = DBI->available_drivers($quiet);
print header;
print "<html>\n<head>\n\t<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">\n\t<title>pcw.homeip.net</title>\n<STYLE type=text/css>\n";
print "<!--\n",
"A:link {COLOR: #3c5b9b; TEXT-DECORATION: none}\n",
"A:visited { COLOR: #3c5b9b; TEXT-DECORATION: none}\n",
"A:hover {COLOR: #e12033;}\n",
"A:active {FONT-SIZE: 20px; COLOR: black; TEXT-DECORATION: underline}\n",
"th {background-color: #071B72; color: #417ab8; padding:4px; font-family:verdana;font-size:14; border-color:black; border-width:2px; border-style:solid;}\n",
"td {background-color: #011340; color: silver; padding-left:4px;padding-right:4px;font-family:verdana; font-size:12px}\n",
"img {border:0}\n",
"-->\n",
"</STYLE>\n",
"\t</head>\n";
print "<body LINK="#619AB8" VLINK="#417ab8" ALINK="#91caff" bgcolor="#011340" text="#619AB8" style="margin:0">\n",
"\t<table width="100%" cellpadding="0" cellspacing="4">\n",
"\t\t<tr>\n",
"\t\t\t<th border="2">SQL-Abfrage - Eingabe</th>\n",
"\t\t</tr><tr>\n",
"\t\t\t<td style=" border-color:black; border-width:2px; border-style:solid;"><center>\n",
"\t\t\t\t<table>\n",
"\t\t\t\t\t<tr>\n",
"\t\t\t\t\t\t<td colspan="2"><form method="post" action="/cgi-bin/sql.cgi">\n",
"\t\t\t\t\t\t\t<b>Ihre Anfrage:</b><br>\n",
"\t\t\t\t\t\t\t<TEXTAREA name="sqlsth" rows="5" cols="54"></TEXTAREA><br>\n",
"\t\t\t\t\t\t\t an Datenbank:<br>\n",
"\t\t\t\t\t\t\t<input type="text" name="sqldb"  size=57 />\n";
print popup_menu(-name=>'sqldrv',
      -values=>@drivers,
      -default=>'mysql');
print "\t\t\t\t\t\t\t<br>\n",
"\t\t\t\t\t\t\tals User:<br>\n",
"\t\t\t\t\t\t\t<input type="text" name="sqlname"  size=72 /><br>\n",
"\t\t\t\t\t\t\tmit Passwort:<br>\n",
"\t\t\t\t\t\t\t<input type="text" name="sqlpwd"  size=72 /><br>\n",
"\t\t\t\t\t\t</td>\n",
"\t\t\t\t\t</tr><tr>\n",
"\t\t\t\t\t\t<td><input type="reset"/></td>\n",
"\t\t\t\t\t\t<td align="right"> <input type="submit" name="submit"/></td>\n",
"\t\t\t\t\t</tr>\n",
"\t\t\t\t</table>\n",
"\t\t\t</center>\n",
"\t\t</td>\n",
"\t</tr>\n",
"</table>\n",
"</body>\n",
"</html>\n";

und die als SQL.CGI
#!E:/Perl/bin/perl -w
use CGI;
print header();
use CGI qw(:standard);
my $q=param('sqlsth');
my $db=param('sqldb');
my $sdrv=param('sqldrv');
my $name=param('sqlname');
my $pwd=param('sqlpwd');
if($q ne ''){
use DBI;
#use strict;
my $dbh = DBI->connect("DBI:$sdrv:$db",$name,$pwd)
or die "Unable to connect to contacts Database!\n";# $dbh->errstr\n";
$dbh->{RaiseError} = 1;
my $sth = $dbh->prepare($q);
$sth->execute or
die "Unable to execute query: $dbh->errstr\n";
print "<html><head>\n<title>SQL-Abfrage-Ergebnis - '$q'</title>\n</head>\n";
print "<body bgcolor="#cococo" text="black">\n",
      "<b>Ergebnis für SQL-Abfrage:<br>\n'$q'</b><br>\n<p>\n";
my @row;
while(@row = $sth->fetchrow_array) {
   print "\t$row[0] -  $row[1]<br>\n";
}
$sth->finish;
$dbh->disconnect;
print "</p>\n</body>\n</html>";
}
else {print "<html>\n<head>\n<title>SQL-Abfrage-Fehler</title>\n<head>\n<body bgcolor="#cococo" text="black">\nLeere Eingabe. Abgfrage nicht möglich!\n</body>\n</html>\n"}

Dann kannst du SQLFORM.CGI aufrufen und ein einfaches SQL-Statement eingeben zum abfragen. Bei Fragen zu SQL wende dich an mysql.de. Da kann ich dir och nicht viel weiterhelfen so auf die Schnelle