$STH->fetch() gibt ja "false" zurück, wenn keine Daten vorhanden sind. Ist daher so etwas richtig? Oder würdet ihr es anders lösen?
Ja. Meine Methoden geben immer eine Referenz auf die zu erwartenden Daten zurück, es sei denn, eine Exception ist gefallen (DB-Server abgeraucht, Verbindung abgebrochen o.ä.).
Sofern Benutzereingaben in die Abfrage eingehen, werden die vorher geprüft. In Perl sieht das bei mir in Etwa so aus:
# Wenn hier eine EX fällt, ist es höhere Gewalt wo
# Anwender nichts dafür kann
# Verbindung zum Data-Layer
my $userobject = tie my %user, 'MySQL::User' or
die "$@\n";
# Aber hier:
# die Session-ID kommt vom Anwender
# und könnte falsch sein
$userobject->validate( $Session->user_id ) or
return $this->errorP( descr => "Unbekannte User-ID");
# OK, hier kanns weitergehen
$user{suburb} = "Mala Strana"; # aus einem Formular z.B.
$userobject->write or die "$@\n";
# mögliche EX beim Zurückschreiben
Geht auch in PHP zu machen ;)