how to send an errorlog file and error email

PHP

If example my i cannot connect to database and i want this error message insert into a log file and send as error email notification how?

say i got this

 $dbLink = mysql_connect(ip, username,password);
  if(!$dbLink)   die("Could not connect to database. " . mysql_error());
 
if say the username is incorrect that mean could not connect to database
how can i send this error message to log file and an email?
firekiller15Asked:
Who is Participating?
 
Khanh DoanConnect With a Mentor Senior DeveloperCommented:
From PHP Manual :
<?php
// Send notification through the server log if we can not
// connect to the database.
if (!Ora_Logon($username, $password)) {
    error_log("Oracle database not available!", 0);
}
 
// Notify administrator by email if we run out of FOO
if (!($foo = allocate_new_foo())) {
    error_log("Big trouble, we're all out of FOOs!", 1,
               "operator@example.com");
}
 
// another way to call error_log():
error_log("You messed up!", 3, "/var/tmp/my-errors.log");
?>

Open in new window

0
 
Khanh DoanSenior DeveloperCommented:
You can check more at http://us.php.net/error_log

goodluck.
Bonmat86.
0
 
firekiller15Author Commented:
if i want to send log file by email where should i put the extra_headers parameter
0
 
firekiller15Author Commented:
why no matter it has error or not it will create error file it self
0
 
Khanh DoanSenior DeveloperCommented:
I found this script at php manual
I think you can base at it to make ur email report.
Goodluck
Bonmat86.
<?php
 
function myErrorHandler($errno, $errstr, $errfile, $errline){
    switch ($errno) {
    case E_USER_ERROR:
        if ($errstr == "(SQL)"){
            // handling an sql error
            echo "<b>SQL Error</b> [$errno] " . SQLMESSAGE . "<br />\n";
            echo "Query : " . SQLQUERY . "<br />\n";
            echo "On line " . SQLERRORLINE . " in file " . SQLERRORFILE . " ";
            echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
            echo "Aborting...<br />\n";
        } else {
            echo "<b>My ERROR</b> [$errno] $errstr<br />\n";
            echo "  Fatal error on line $errline in file $errfile";
            echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
            echo "Aborting...<br />\n";
        }
        exit(1);
        break;
 
    case E_USER_WARNING:
    case E_USER_NOTICE:
    }
    /* Don't execute PHP internal error handler */
    return true;
}
 
// function to test the error handling
 
function sqlerrorhandler($ERROR, $QUERY, $PHPFILE, $LINE){
    define("SQLQUERY", $QUERY);
    define("SQLMESSAGE", $ERROR);
    define("SQLERRORLINE", $LINE);
    define("SQLERRORFILE", $PHPFILE);
    trigger_error("(SQL)", E_USER_ERROR);
}
 
set_error_handler("myErrorHandler");
 
// trigger an sql error
$query = "SELECT * FROM tbl LIMIT 1";
$sql = @mysql_query($query)
    or sqlerrorhandler("(".mysql_errno().") ".mysql_error(), $query, $_SERVER['PHP_SELF'], __LINE__);
   
 
?>

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.