dedlfix: Destruktor

Beitrag lesen

echo $begrüßung;

ich bin gerade dabei mir eine kleine mysql-Klasse zu erstellen.

Gefällt dir die mysqli-Klasse nicht?

Dabei möchte ich jeweils die Abfrage in der Klasse ausführen.

Du kannst sie auch erweitern, wenn sie noch nicht die Funktionalität bietet, die du benötigst.

Tritt ein Fehler auf, wird das Ganze in eine Variable geschrieben.

Mehr nicht? Machst du dann einfach weiter, und ignorierst ansonsten dass ein Fehler auftrat?

Am Ende der Seite soll im Destruktor eine Mail an mich geschrieben werden, die sämtliche Fehler enthält.

Nun habe ich nur das Problem, dass durch einen evtl. auftretenden SQL Error ein PHP Error ausgelöst wird (evtl leere Variable, falscher Arrayzugriff o.ä.) und damit der Destruktor nicht mehr ausgelöst wird.

Wenn ein PHP-Fehler ausgelöst wird, dann hast du die Information ignoriert, dass ein SQL-Fehler auftrat. Die mysql- und mysqli-Funktionen geben beim Abarbeiten auf dem MySQL-Server aufgetretene Fehler bekannt, ohne einen PHP-Fehler auszulösen.

Hat jemand eine Ahnung wie man den Destruktor unter allen Umständen auslösen kann?

Wenn gravierende Fehler auftreten, wie Speicherlimit erreicht, dann ist auch kein Speicher mehr für die Ausführung des Konstruktors oder anderer selbst geschriebener Funktionen vorhanden. Ein Aufruf "unter allen Umständen" ist illusorisch.

Kennst du das Kapitel Error Handling und Logging? Dass mehrere Fehler auftreten, ist meist eine Folgeerscheinung eines unerwarteten Zustands. Warum sendest du nicht gleich die Email ab? Und was ist mit "normalen" PHP-Fehlern? Willst du darüber nicht vielleicht auch zwecks Behebung eine Information bekommen?

echo "$verabschiedung $name";