Mailinglisten-Archive |
hi, propiers mal damit: $dbh = DBI->connect($dbConnect,$dbUser,$dbPwd) || &defError ("dbConnect", "$DBI::errstr"); $qry = qq~SELECT nr, intro, .... from ....~ $sth = $dbh->prepare($qry); $sth->execute(); $cnt = $sth->rows(); # das funktioniert wohl nicht bei allen dbs, z.b. nicht bei odbc if ($cnt == 1) { # nur ein treffer } elsif ($cnt > 1) { while (($nr, $intro, $antworten, ...) = $sth->fetchrow()) { print "$nr - $intro - $antworten\n"; } } else { # kein treffer } $sth->finish() if ($sth); $dbh->disconnect() if ($dbh); exit(0); mfg Markus Rietzler * Wuppertal-Forum | Wuppertal-Navigator * http://www.wuppertal-navigator.de * eMail: markus.rietzler_(at)_wuppertal-navigator.de Ronsdorfer Strasse 14 Fon: 0202.42 08 30 42119 Wuppertal Fax: 0202.242 24 66 Mobil: 0171.480 77 82 > -----Original Message----- > From: Thomas Barth [mailto:th.barth_(at)_portal.de] > Sent: Wednesday, August 30, 2000 11:39 AM > To: mySQL > Subject: Immer noch Neuling - ich verzweifel noch, wer kann einen Blick > drüberwerfen (Perl/mySQL). > > > 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 > > --- *** Weitere Infos zur Mailingliste und MySQL unter www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive