die Meldung deutet darauf hin, dass der connect nicht geklappt hat.
versuch mal das:
# connect
my $dbh =DBI->connect($dsn, $user, $password) or die $DBI::errstr;
hierzu muss ich auch noch was sagen
my $sth = $dbh->prepare("SELECT user_lastname FROM user WHERE user_id = '$login' AND user_password = '$pass'") or die ($dbh->errstr);
mit Perl DBI hast du (im Gegensatz zu PHP) die Möglichkeit, deine Abfragen vom SQL-Server vorbereiten zu lassen. Nutze es bitte auch!
my $sth = $dbh->prepare("SELECT user_lastname FROM user WHERE user_id = ? AND user_password = ?) or die ($dbh->errstr);
# die ? sind jetzt die Platzhalter
my $rc = $dbh->execute($login, $pass) or die ($dbh->errstr);
# die Variablen werden in der Reihenfolge der Platzhalter übergeben.
Damit umgehst du schon mal das Problem 'SQL-Injektion', und bei mehreren gleichartigen Abfragen ist nur noch 'execute' mit geänderten Variablen notwendig, was die Verarbeitungsgeschwindigkeit deutlich erhöht.
$rc wird dann ganz normal für 'fetch_*' verwendet
Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)
als Antwort auf: [#157875]
(Dieser Beitrag wurde von oesi50 am 7. Apr 2005, 17:53 geändert)