【问题标题】:Best way to build a database of php errors using mysql?使用 mysql 构建 php 错误数据库的最佳方法?
【发布时间】:2012-06-07 12:48:27
【问题描述】:

我正在构建一个时事通讯 CMS,我想将任何错误记录到数据库中,其中包含时间戳、错误、用户 ID 和函数信息等信息。最好的方法是什么?

我在想我应该构建一个类来处理错误并使用 PDO 将它们输入到 MYsql 表中。

伪代码:

    class sbmtErr
{
   private $errStrng;

   protected function sndErr($err, $usrData, $mthd){

      $sndErrPDO = new myPDO;

      $this->errStrng = "INSERT INTO errTbl (error, userID, method) VALUES ('".$err."', ".usrData['usrID'].", '".$mthd."')";

      $sndErrPDO->sqlQry($errStrng);
   }
}

我的问题是我不知道如何隔离引发错误的方法。

有没有更好的方法来做到这一点?

谢谢。

【问题讨论】:

  • 如果数据库出现故障,您在哪里记录错误? ;)
  • 我不让人们使用这些名字!提交错误,$errorString,$sendErrorPDO。为什么是愚蠢的速记?
  • 您误解了@truth 试图表达的观点。当您可以使用更清晰和更具描述性的 submitError 或 $sendErrorPDO 时,为什么还要使用像 sbmtErr 或 $sndErrPDO 这样的“愚蠢的速记”。我想这就是他在编码时使用的东西。
  • 除了“e”吗?你看起来没问题:)

标签: php mysql sql error-handling pdo


【解决方案1】:

扩展异常类。 CMSErrorException ,当抛出(即在构造上)时,使用反射来找出函数、行号等内容。您如何找到用户的 id 取决于您如何保留它。

然后,无论您在捕获它时做什么,都会调用一个方法(同样来自构造),将其记录到数据库中。

注意不要在异常代码中抛出这些自定义异常,因为在发生数据库错误的情况下可能会导致无限循环。

【讨论】:

  • 亲爱的,我今晚要试试这个。
猜你喜欢
  • 2010-12-12
  • 2017-03-14
  • 1970-01-01
  • 2010-09-14
  • 1970-01-01
  • 2012-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多