Forum Moderators: coopster
<?php
error_reporting(E_ALL);
function mysql_error_report($q,$e,$f)
{
if (isset($_SESSION['id_user'])) {$id = $_SESSION['id_user'];} else {$id = 0;}
if ($_SESSION) {$session = mysql_real_escape_string(session_id());} else {$session = 0;}
$ip = mysql_real_escape_string(getenv('REMOTE_ADDR'));
$query = mysql_real_escape_string($q);
$error = mysql_real_escape_string($e);
$function = mysql_real_escape_string($f);
$query1 = "INSERT INTO log_mysql_errors (id_session, id_user, date, ip, function, mysql_error, mysql_query) VALUES ('$session', '$id', NOW(), inet_aton('$ip'), '$function', '$error', '$query')";
$result1 = mysql_query($query1);
}
$query1 = "SELECT * FROM example;";
$result1 = mysql_query($query1);
if ($result1)
{
echo 'and there was much rejoicing';
}
else {mysql_error_report($query1,mysql_error(),__FUNCTION__);}
?>
[edited by: dreamcatcher at 7:46 am (utc) on Sep 12, 2010]
[edit reason] Removed side scroll [/edit]
I recently discovered that a few people use: or trigger_error(mysql_error(), E_USER_ERROR) opposed to using: or die(mysql_error()) on the end of any sql function.
The only other instance I use die() is when I send an HTTP 304 response as I found a nasty bug in Gecko browsers. ... Basically Gecko does not correctly interpret pages that have content even if their HTTP response is 304 so just in case your code is somehow sending content after the HTTP 304 header use die() to seal the deal.
<?php
set_error_handler('error_handle');
function error_handle($errno,$errstr,$errfile,$errline,$errcontext)
{
if (isset($db))
{
$session = mysql_real_escape_string(session_id());
if (isset($_SESSION['user_id'])) {$user = mysql_real_escape_string($_SESSION['user_id']);}
else {$user = 0;}
$ip = mysql_real_escape_string(getenv('REMOTE_ADDR'));
$error = mysql_real_escape_string($errstr);
$fil = explode('Site Name Here\\',$errfile);
$file = mysql_real_escape_string('Line '.$errline.' in '.$fil[1]);
$query1 = "INSERT INTO log_php_errors (id_session, id_user, date, ip, error, file) VALUES ('$session', '$user', NOW(), '$ip', '$error', '$file')";
$result1 = mysql_query($query1);
if ($result1) {}
else {mysql_error_report($query1,mysql_error(),__FUNCTION__);}
}
/*
FILE SYSTEM
// Linux CHMOD 606
if ($_SERVER['SERVER_NAME']=='www.example.com') {$fp = fopen('/home/example/php_errors.log', 'a+');}
else if ($_SERVER['SERVER_NAME']=='localhost') {$fp = fopen('D:\MEDIA\DOCUMENTS\Web Folder Goes Here\php_errors.log', 'a+');}
if ($fp)
{
fwrite($fp, date('Y-m-d g:i:sA').': '.$errstr."\n");
//fwrite($fp, $errno."\n");
//fwrite($fp, $errstr."\n");
fwrite($fp, 'Line '.$errline.' in '.$errfile."\n\n\n");
//fwrite($fp, ."\n");
//fwrite($fp, $errcontext."\n\n\n");
//fwrite($fp, print_r($errcontext, true)."\n\n\n");
fclose($fp);
}
*/
}
?>
<?php
function example()
{
$query1 = "";
$result1 = mysql_query($query1);
if ($result1)
{
$query2 = "";
$result2 = mysql_query($query2);
if ($result2)
{
// stuff
}
else {mysql_error_report($query2,mysql_error(),__FUNCTION__);}
}
else {mysql_error_report($query1,mysql_error(),__FUNCTION__);}
}
?>