meine reportPDOError Methode häufiger nutzen
Kann man wirklich. Da gilt es aber noch was zu verfeinern. Die Methode gibt nämlich stets auf der Webseite aus, was gerade nicht immer erwünscht ist:
private function reportPDOError( $message, $sql ) {
$info = $this -> dbh -> errorInfo();
echo "<div style='color:red'><b>Error in SQL Access: $message</b>";
echo "<br>SQL-Statement: $sql";
echo "<br>PDO SQLSTATE: $info[0]";
echo "<br>MySQL error code: $info[1]";
echo "<br>MySQL error message: $info[2]</div>";
}
Mein Vorschlag (blind geschrieben, nicht getestet):
private function reportPDOError( $message, $sql, $isFatal = false ) {
$info = $this -> dbh -> errorInfo();
trigger_error ( 'Error in SQL Access: ' . $message, E_USER_NOTICE );
trigger_error ( 'SQL-Statement: ' . $sql , E_USER_NOTICE );
trigger_error ( 'PDO SQLSTATE: ' . $info[0], E_USER_NOTICE );
trigger_error ( 'MySQL error code: ' . $info[1], E_USER_NOTICE );
trigger_error ( 'MySQL error message: ' . $info[2], E_USER_NOTICE );
if ( DEBUG || ini_get('display_errors') ) {
echo '<div style="color:red"><b>Error in SQL Access: ' . $message . '</b>';
echo '<br>SQL-Statement: ' . $sql
. '<br>PDO SQLSTATE: ' . $info[0]
. '<br>MySQL error code: ' . $info[1]
. '<br>MySQL error message: ' . $info[2]
;
if ( $isFatal ) {
echo '<br>Exit called.</div>';
exit;
}
echo '</div>';
}
if ( $isFatal ) {
trigger_error ('Exit called.', E_USER_ERROR );
}
}