Php,$ result = mysql_query($ query)或者死...我怎样才能快速通过电子邮件发送故障?

时间:2011-01-10 10:40:23

标签: php

我想添加一个简单的,如果查询功能出现故障,请给我发电子邮件。

$result = mysql_query($query) or die

我会添加什么?

3 个答案:

答案 0 :(得分:1)

如果频繁访问页面上有错误的SQL
或者在mysql服务器关闭的情况下,
会打开你的收件箱。

如何使用error_log将错误的sql登录到本地磁盘? 日志旋转也应该适合(例如日志文件可以是Ymdh.log

不是ASAP通知

  1. 每分钟设置一次cronjob
  2. 对日志文件执行行计数
  3. 自上一分钟开始发送新电子邮件
  4. 如果没有新行,请不要发送电子邮件
  5. 将行计数存储到单独的文件中以供下次执行
  6. 因此,您将收到一封电子邮件,指出是否有任何新错误的SQL在最后一刻发生,如果没有出错则不会发出警报。

    因为无法说服你......

    然后你可以将错误的sql与错误日志
    进行比较 如果错误日志中找不到错误的sql,请附加到错误日志中,通过电子邮件发送错误的sql

    你需要寻找一种时髦的方法在错误日志中快速进行字符串比较(如果错误日志增长太快)

    日志旋转也可以应用

答案 1 :(得分:0)

if(!$result = mysql_query($query){
    mail(...);
    die;
}

答案 2 :(得分:0)

你可以使用一个函数说

$result = mysql_query($query) or reportErrorData()

function reportErrorData()
{
  $fp=popen("/usr/sbin/sendmail -t -oi","w");
  fwrite($fp,"To: DEV_EMAIL\n");
  fwrite($fp,"From: support@support.com\n");
  fwrite($fp,"Subject: System Error\n\n");

  fwrite($fp, "Message: error message\n\n")

  pclose($fp);
}

您还可以将参数传递给reportErrorData函数,例如 sql _ FILE _ _ 功能 _ 等。也可以通过电子邮件发送任何 $ _ SESSION,$ _GET或$ _POST数据,以便查看登录用户是谁(如果是这样的话)并查看错误发生的位置,即哪个文件,功能行等。

希望这会有所帮助。