在MySQL中存储错误日志

时间:2012-12-05 20:33:32

标签: php mysql logging

我想将我的PHP创建的错误日志存储到MySQL表中,但没有插入任何内容。

我用于错误日志的代码是..

function myHandler($code, $msg, $file, $line) 
   {
      echo "An error occurred while processing your request. Please visit our site and try again.";  
      // log error to file, with context
      $logData = date("d-M-Y h:i:s", mktime()) . ", $code, $msg, $line, $file\n";
      die("Error");
   }

带有

$insert = "INSERT INTO error_logs (error_message)"."VALUES ('$logData')";   
mysql_query($insert)or die(); 

将日志插入error_logs表中的error_message列,该表设置为带有250个字符上限的VARCHAR

我认为它只是在那里设置了一些东西,但显然我已经远离标记了。

1 个答案:

答案 0 :(得分:2)

您插入的语句可以解析为:

  

INSERT INTO error_logs(error_message)VALUES('foo')

无效

确保将那个空间放在那里。

您可能希望将MySQL错误声明放入die(..),以便下次更好地查看错误。

此外 - 请 在将数据输入声明之前将其转义....您现在的做法可能导致一些大的{{3}问题......

  

Bobby Tables。它们不再被维护,Please, don't use mysql_* functions in new code已经开始了。请参阅deprecation process?转而了解red box,并使用prepared statementsPDO - MySQLi将帮助您确定哪个。如果您选择PDO this article