phpbar.de logo

Mailinglisten-Archive

Immer noch Neuling - ich verzweifel noch, wer kann einen Blick drüberwer
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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 


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive