Wer kennt das nicht: Ein großes Projekt überall mit SQL-Anfragen gespickt.
Um Fehler abzufangen gehen viele so vor:
-
$sql = [SQL-STATEMENT];
-
Nun bekommt man jedoch nur den SQL Error ausgegeben,
und kann sich auf eine lange Suche einstellen.
Nicht so bei verwenden der debug_backtrace() Funktion.
Hier ein praktisches Snippet, teils von php.net, teils von mir ![]()
So wird im Fehlerfall nicht nur der SQL-Error ausgegeben, sondern
auch jede Stelle, an der er in den Skripten auftritt.
-
function querysqlsimple($sql) // für simple kommandos wie update, insert…
-
{
-
}
-
-
function querysql($sql) //für select anweisungen
-
{
-
return $result;
-
}
-
-
function dieDebug($sError)
-
{
-
-
echo "<hr /><div><b>".$sError."</b><hr /><br /><table border=’1′>";
-
-
echo "<thead><tr><th>file</th><th>line</th><th>function</th>".
-
"</tr></thead>";
-
-
foreach($aCallstack as $aCall)
-
{
-
-
-
"<td>{$aCall["function"]}</td></tr>";
-
-
}
-
echo "</table></div><hr /></p>";
-
-
}
-
-
querysqlsimple("UPDATE table SET value=…"); //beispiel für update
-
$result = querysql("SELECT * FROM table …"); //beispiel für select
-
…
Links:
debug_backtrace() Funktion Erklärung (php.net)
dieDebug() Snippet (php.net)
Hoffe es hilft euch