rss twitter

fehlerbehebung in php

In diesem Beitrag möchte ich euch demonstrieren wie ich mit Fehlermeldungen in PHP umgehe und diese am besten und am schnellsten ausmerze.

Mit Hilfe der Funktion error_reporting kann ich PHP "mitteilen" welche Fehlermeldungen mir ausgegeben werden soll.

Es gibt folgende Werte...
Wobei die E_ALL Option die beste in Sachen Fehlerbehebung ist [1]:

  • E_ERROR
    Fatale Laufzeit-Fehler. Dies zeigt Fehler an, die nicht behoben werden können. Beispielsweise Probleme bei der Speicherzuweisung. Die Ausführung des Skripts wird abgebrochen.

  • E_WARNING
    Warnungen (keine fatalen Fehler) zur Laufzeit des Skripts. Das Skript wird nicht abgebrochen.

  • E_PARSE
    Parser-Fehler während der Übersetzung. Parser-Fehler können nur vom Parser erzeugt werden.

  • E_NOTICE
    Benachrichtigungen während der Laufzeit. Sie zeigen an, dass im Skript irgend etwas gefunden wurde, was einen Fehler verursachen könnte. Es ist aber genauso möglich,
    dass Benachrichtigungen im ordnungsgemäßen Ablauf eines Skripts ausgegeben werden.

  • E_CORE_ERROR
    Fatale Fehler, die beim Starten von PHP auftreten. Diese sind ähnlich wie E_ERROR, nur dass diese Fehlermeldungen vom PHP-Kern erzeugt werden.

  • E_CORE_WARNING
    Warnungen (keine fatalen Fehler), die beim Starten von PHP auftreten. Diese sind ähnlich wie E_WARNING, nur dass diese Warnungen vom PHP-Kern erzeugt werden.

  • E_COMPILE_ERROR
    Fatale Fehler zur Übersetzungszeit. Diese sind ähnlich wie E_ERROR, nur dass diese Fehlermeldungen von der Zend Scripting Engine erzeugt werden.

  • E_COMPILE_WARNING
    Warnungen zur Übersetzungszeit. Diese sind ähnlich wie E_WARNING, nur dass diese Warnungen von der Zend Scripting Engine erzeugt werden.

  • E_USER_ERROR
    Benutzerdefinierte Fehlermeldungen. Diese sind ähnlich wie E_ERROR, nur dass diese Fehlermeldungen im PHP-Code mit trigger_error() erzeugt werden.

  • E_USER_WARNING
    Benutzerdefinierte Warnungen. Diese sind ähnlich wie E_WARNING, nur dass diese Warnungen im PHP-Code mit trigger_error() erzeugt werden.

  • E_USER_NOTICE
    Benutzerdefinierte Benachrichtigung. Diese sind ähnlich wie E_NOTICE, nur dass diese Benachrichtigungen im PHP-Code mit trigger_error() erzeugt werden.

  • E_ALL
    Alle Fehler und Warnungen die unterstützt werden, mit Ausnahme von E_STRICT.

  • E_STRICT
    Benachrichtigungen des Laufzeitsystems. Damit erhalten Sie von PHP Vorschläge für Änderungen des Programmcodes, die eine bestmögliche Interoperabilität und zukünftige Kompatibilität Ihres Codes gewährleisten.

Eines der Werte wird dann mit Hilfe des ersten Parameters an die Funktion error_reporting übergeben:

PHP:

Alle SQL-Fehlermeldungen anzeigen
Um zu kontrollieren ob der Fehler an der SQL Tabelle liegt, kann man die Funktionen mysql_error und mysql_errno benutzen. Da der häufigste Fehler an der SQL Syntax in Zusammenhang von mysql_query liegt, sollte man diese 3 Funktionen ( mysql_error, mysql_errno und mysql_query ) geschickt miteinander verbinden.

PHP:
  1. if ( !mysql_query($sql) AND mysql_errno()> 0 )  {
  2. }

Die Funktionen mysql_error und mysql_errno lassen sich natürlich auch in Zusammenhang von anderen Funktionen einsetzen.

Den Ablauf mitverfolgen
Mit der Funktion debug_backtrace und debug_print_backtrace lassen sich Informationen über den Ablauf eines PHP Skripts sammeln. Die Funktion sammelt die Daten in einem assoziativen Array und gibt dieses dann "zurück".

Als zurückgegebene Arrayelemente von debug_backtrace sind möglich [2]:

  • function
    Der Name der aktuell ausgeführten Funktion.

  • line
    Die aktuelle Zeilennummer.

  • file
    Der aktuelle Dateiname.

  • class
    Der aktuelle Klassenname.

  • object
    Das aktuelle Objekt. Dieses Element ist seit PHP 5.1.1 verfügbar.

  • type
    Der aktuelle Typ des Aufrufs. Falls der Aufruf in einer Methode erfolgte, wird "->" zurückgegeben. Falls der Aufruf aus einer statischen Funktion erfolgte, wird "::" zurückgegeben und falls der Aufruf aus einer Funktion erfolgte, wird nichts zurückgegeben.

  • args
    Falls der Aufruf aus einer Funktion erfolgte, werden hier die Funktionsargumente aufgelistet. Falls der Aufruf aus einer eingebundenen Datei erfolgte, werden die Namen der Include-Dateien angegeben.

Quellen:
[1] http://www.php.net/manual/de/function.error-reporting.php
[2] http://www.php.net/manual/de/function.debug-backtrace.php

Kommentar hinterlassen

Powered by WordPress | Free T-Mobile Phones for Sale | Thanks to Palm Pre Blog, Video Game Music and Get Six Pack Abs