hilfdirselbst.ch
Facebook Twitter gamper-media

"Geht nicht" ist keine gültige Fehlermeldung!

Hanü
Beiträge: 219
2. Nov 2003, 03:17
Beitrag #1 von 5
Bewertung:
(1746 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

MySQL-Datenbankabfrage mit Perl


Hi.

Könnt Ihr mir bei der Datenbankabfrage mit Perl helfen? Es heiß überall "funktioniert im Prinzip wie mit PHP"... würde ich mich mit PHP auskennen, hätte ich wohl kein Problem damit ^^ Habe da also eine Tabelle in einer MySQL-Datenbank angelegt - 4 Spalten (User-, Vor-, Nachname, Geburtstag) und einige Zeilen Testeinträge. Das Script habe ich folgendermaßen zusammengebastelt (die Verbindung zur Datenbank kann damit hergestellt werden, aber dann kommt 500-Fehler):


#!/usr/bin/perl
use CGI::Carp qw(fatalsToBrowser);

use DBI; # DBI-Modul
my $DB_DSN = "DBI:mysql:datenbankname"; # Datenbank
my $DB_USER = "username"; # Benutzer
my $DB_PASSWD = "xxxxxx"; # Passwort

my $dbh = DBI -> connect ($DB_DSN, $DB_USER, $DB_PASSWD) || die "Kann keine Verbindung zu $DB_DSN herstellen: $DBI::errstr";

######################################

my $Liste=$dbh->prepare("SELECT * FROM tabellenname"); # SQL-Befehl: Komplette Tabelle auswählen
$Liste->execute(); # SQL-Befehl ausführen
$Anzahl=$Liste->rows; # Die Anzahl der Reihen speichern (ich weiß allerdings noch nicht, wofür das gut sein soll)

while (@Datensatz=$Liste->fetchrow_array) {
($Username, $Vorname, $Nachname, $Geburtstag)=@Datensatz;
print"User=$Username, Name=$Vorname $Nachname, Geburtstag=$Geburtstag <br>\n";
}

$Liste->finish;
$dbh->disconnect; # Datenbankverbindung trennen
exit; Top
 
X
oesi50  A  S
Beiträge: 2315
2. Nov 2003, 09:18
Beitrag #2 von 5
Beitrag ID: #57103
Bewertung:
(1746 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

MySQL-Datenbankabfrage mit Perl


hi hanü,

bei Dir fehlt nur noch dieses.

print "Content-type: text/html\n\n";

Damit teilst Du dem Webserver (und der dann dem Browser) mit, welche Art von Daten jetzt ausgeliefert werden sollen.

Grüße Oesi
als Antwort auf: [#57098] Top
 
Hanü
Beiträge: 219
16. Nov 2003, 02:16
Beitrag #3 von 5
Beitrag ID: #59125
Bewertung:
(1746 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

MySQL-Datenbankabfrage mit Perl


Danke, damit hat es funktioniert. Kommen wir zum nächsten Problem. Ich möchte nicht die gesamte Liste ausgeben, sondern nur den Namen der Person, die sich eingeloggt hat.

my $Name = $ENV{'REMOTE_USER'};

Wie mache ich jetzt den Abruf aus der Tabelle? Habe es (erfolglos) so versucht - Anfang wie beim obigen Script:

print "Content-type: text/html\n\n";
print "$Name <br>\n"; # nur zum Test - der Username wird angezeigt

my $Abfrage=$dbh->prepare("SELECT * FROM tabellenliste WHERE Username = $Name");
$Abfrage->execute();

while (@Datensatz=$Abfrage->fetchrow_array) {
($User, $Vorname, $Nachname, $Geburtstag)=@Datensatz;
print"$Vorname &Nachname\n";
}

$Abfrage->finish;
$dbh->disconnect;
exit;
als Antwort auf: [#57098] Top
 
oesi50  A  S
Beiträge: 2315
16. Nov 2003, 09:21
Beitrag #4 von 5
Beitrag ID: #59128
Bewertung:
(1746 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

MySQL-Datenbankabfrage mit Perl


hi Hanü,

mach einfach alle Faselfehler raus, dann geht's.

SELECT ..... '$Name' ..

print ... $Nachname ..

Grüße Oesi

als Antwort auf: [#57098] Top
 
Hanü
Beiträge: 219
16. Nov 2003, 21:21
Beitrag #5 von 5
Beitrag ID: #59173
Bewertung:
(1746 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

MySQL-Datenbankabfrage mit Perl


Danke. Steh halt noch am Anfang. Jetzt funktioniert es
Gruß Andreas
als Antwort auf: [#57098] Top
 
X