[GastForen Archiv Perl und CGI MySQL-Datenbankabfrage mit Perl

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Archiv - Archivierte Foren
Themen
Beiträge
Moderatoren
Letzter Beitrag

MySQL-Datenbankabfrage mit Perl

Hanü
Beiträge gesamt: 219

2. Nov 2003, 03:17
Beitrag # 1 von 5
Bewertung:
(3386 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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;
X

MySQL-Datenbankabfrage mit Perl

oesi50
  
Beiträge gesamt: 2315

2. Nov 2003, 09:18
Beitrag # 2 von 5
Beitrag ID: #57103
Bewertung:
(3386 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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]

MySQL-Datenbankabfrage mit Perl

Hanü
Beiträge gesamt: 219

16. Nov 2003, 02:16
Beitrag # 3 von 5
Beitrag ID: #59125
Bewertung:
(3386 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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]

MySQL-Datenbankabfrage mit Perl

oesi50
  
Beiträge gesamt: 2315

16. Nov 2003, 09:21
Beitrag # 4 von 5
Beitrag ID: #59128
Bewertung:
(3386 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi Hanü,

mach einfach alle Faselfehler raus, dann geht's.

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

print ... $Nachname ..

Grüße Oesi



als Antwort auf: [#57098]

MySQL-Datenbankabfrage mit Perl

Hanü
Beiträge gesamt: 219

16. Nov 2003, 21:21
Beitrag # 5 von 5
Beitrag ID: #59173
Bewertung:
(3386 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke. Steh halt noch am Anfang. Jetzt funktioniert es
Gruß Andreas


als Antwort auf: [#57098]
X