Thread DBD::SQLite - Anzahl Zeilen abfragen
(21 answers)
Opened by Kean at 2011-05-09 09:16
Oh, Vorsicht:
Code (perl): (dl
)
$sth->execute or die $dbh->errstr; wird niemals ein die() werfen (siehe Edit), weil execute() _immer_ einen definierten Wert zurückgibt. $DBI::errstr ist auch mit Vorsicht zu genießen. Mal angenommen, Du hast ein Statement, was nicht funktioniert, prüfst nicht gleich und schickst ein funktionierendes ST hinterher. Wenn Du jetzt $DBI::errstr befragst, steht da nix drin, ein Fehler wird nicht bemerkt. Mein Tipp: s.o.. Setze RaiseError, eval{}; und befrage $@. Damit kannst Du einwandfrei reagieren (Datenkonsistenz!), und die Anwendung bleibt stabil. Edit: Im Fehlerfall gibt execute() den Wert '0E0' zurück. Es erfolgt kein die() obwohl ein Fehler aufgetreten ist. execute() kann aber auch 0 zurückgeben, was keinen Fehlerfall bedeuten muss. Last edited: 2011-05-09 11:16:02 +0200 (CEST) |