Thread Zusätzliches bei SQL-Fehler ausgeben: Problem...
(9 answers)
Opened by pktm at 2004-02-27 21:58
also wenn $dbh->errstr() ausgegeben wird, muss auch "Zeile: $line " ausgegeben werden. Kann es sein, dass da an einer anderen Stelle ein Fehler auftritt, wo kein die "Zeile: $line " . $dbh->errstr() steht?
Nebenbei: das || wird folgendermaszen ausgewertet: Code: (dl
)
my $sth = ( $dbh->prepare($cmd) || die "Zeile: $line" . $dbh->errstr ); Beim die bleibt es sich egal, aber wenn du da sonst was machen willst, wird da bei einem Fehler der rechte Teil des ||-Ausdruckes an $sth ueberwiesen. Wenn du da anstelle von die print schreibst, bekommst du einen schoenen Fehler... Mit or anstelle von || umgehst du dieses potentielle Problem. ich verwende or die so gut wie nie, sondern lieber eine syntax wie die folgende: Code: (dl
)
1 my $sth = $dbh->prepare($cmd); weil ich dann einfach das die durch eine vernuenftige Fehlerausgabe ersetzen kann (z.B. &WriteHtmlError($r, $dbh, $errorMessage) oder so), was gerade bei CGI- und mod_perl-Scripten sehr wichtig sein kann, weil da ein 500er-Fehler selten einen guten Eindruck hinterlaesst. perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/ |