Mailinglisten-Archive |
Hallo, ich stehe noch am Anfang mit der Datenbankentwicklung und komme im Moment nicht weiter. Also: Zum Erlernen der Datenbankanbindung übers Web arbeite ich mit den Beispieldateien aus dem Buch "MySQL" von paul dubois. Auf dem WebServer meines Providers konnte ich bereits die Tabelle member mit den ganzen Datensätzen anlegen. Datenbank samp_db steht also. Nun möchte ich per Perlscript eine Datenbankabfrage absetzen und eine einfache Ausgabe erzeugen ohne irgendwelche Formatierungen. Ich muss das Wesentliche noch verstehen. Folgendes Script habe ich mir aus den Beispielen und meinen bisherigen Perlkenntnissen erarbeitet: <-- Scriptanfang--> #! /usr/bin/perl -w # Es sollen ein paar simple Daten aus einer Tabelle angezeigt werden. Mehr nicht! # Vorspann use DBI; #use CGI; Ich will das Modul nicht verwenden. use strict; # Verbindungsparameter my ($host_name, $user_name, $password) = ("localhost", "username", "pw"); my ($db_name) = "samp_db"; # Datenquelle erzeugen my ($dsn) = "DBI:mysql:$db_name:$host_name"; #$dsn .= ":hostname=$host_name" if $host_name; #$dsn .= ";mysql_read_default_file=/usr/local/apache/conf/samp_db.cnf"; # Verbindung zum Server herstellen my (%attr) = ( RaiseError => 1 ); my ($dbh) = DBI->connect ($dsn, $user_name, $password, \%attr); # Vorspann-Ende #Anfrage absetzen my ($sth) = $dbh->prepare (qq{SELECT * FROM member ORDER BY last_name}); $sth->execute (); # HTML-Kopf print "Content-Type: text/html\n\n"; print <<"EOM"; <html> <head> <title>SQL-Test</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF"> EOM print "$db_name - Datenbankausgabe"; while (my $hash_ref = $sth->fetchrow_ref ()) { print join ("t", $hash_ref->{first_name}, $hash_ref->{last_name}) . "\n"; } $sth->finish (); print <<"EOM"; <p>Verdammt nochmal! Eine einfache Ausgabe von irgendwas sollte doch möglich sein.</p> </body> </html> EOM # HTML-ENDE # Verbindung zur Datenbank trennen $dbh->disconnect (); </-- Scriptende--> Der Fehler muss in der while-Schleife liegen, weil auf der WebSeite nur "samp_db - Datenbankausgabe" angezeigt wird. Das Script ist banal, ich weiß, aber bis hierhin hatte ich schon etliche Fehlermeldungen (Internal Servererror) überwinden müssen. Diese erscheint nun nicht mehr, darauf bin ich ja schon stolz, aber nun kommt wieder eine Hürde und benötige nun einen Rat von euch. Vielen Dank im Voraus. Gruß Thomas Barth... --- *** Weitere Infos zur Mailingliste und MySQL unter www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive