phpbar.de logo

Mailinglisten-Archive

[php] Fehlermeldung: n is not a mySQL....

[php] Fehlermeldung: n is not a mySQL....

Markus Dobel easy_(at)_ist.schuldig.de
Sat, 13 May 2000 14:35:58 +0200


"Björn Schotte" wrote:
> 
> Hallo,
> 
> * Kai Laborenz wrote:
> > require("db_connect.inc");
> > $query = "select * from kategorien";
> > $kategorien = mysql_query($query);
> > while ( $kat = mysql_fetch_object($kategorien)) {
> >       $topart = mysql_query("select * from artikel where
> 
> Hier sollten Fehlerabfragen eingebaut werden, in etwa
> so:
> 
[...]

Dies ist eine Art der Programmierung (die auch im Prinzip die
"sauberere" ist und ueberall so gelehrt wird). Das Problem ist jedoch,
dass man auf diese Art und Weise immer weiter nach rechts einrueckt und
somit der code schnell "zu breit" wird, als dass man ihn noch
ueberblicken koennte. Vor allem, wenn man viele Eingangsbedingungen hat.
Daher benutze ich in der Praxis oftmals diese Form:

if !($res = mysql_query($query)) {
  die("MySQL Fehler: ".mysql_error());
}
if (mysql_num_rows($res) = 0) {
  die("Keine Datensaetze vorhanden.");
}
while ($bla=mysql_fetch_array($res)) {
  ...
}

Und so weiter. Natuerlich muss es kein die() sein, sondern die
Fehlerbehandlung kann auch anders aussehen (man moechte z.b. trotzdem
auch den Seiten-Footer drucken, man moechte eine Alternativroutine
ausfuehren etc.).
Der Vorteil ist jedoch ein Gewinn an Uebersichtlichkeit, zum einen durch
die konstante Einruecktiefe, zum anderen dadurch, dass man sofort den
Code darunter hat, der im Fehlerfall ausgefuehrt wird.

Die Idee hab ich so mal in der PHP-Newgsgroup gelesen und fand sie
ziemlich gut. Sie erfordert allerdings einiges an Umgewoehnung.

Gruss, Markus



php::bar PHP Wiki   -   Listenarchive