Wäre interessant, wie die Klasse, die hinter dem Objekt $db steckt, implementiert ist.
Normalerweise sollte der Fehler schon in der Zeile:
abgefangen werden, würde ich jetzt mal so sagen. Aber scheinbar läuft da was schief, undPHP-Code:
$result = $db->loadObject() or die (mysql_error());
loadObject() macht was, was kein gültiges Ergebnis erzeugt, welches dementsprechend nicht korrekt weiterverarbeitet werden kann.