Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用mysql构建php错误数据库的最佳方法?_Php_Mysql_Sql_Error Handling_Pdo - Fatal编程技术网

使用mysql构建php错误数据库的最佳方法?

使用mysql构建php错误数据库的最佳方法?,php,mysql,sql,error-handling,pdo,Php,Mysql,Sql,Error Handling,Pdo,我正在建立一个通讯CMS,我想把任何错误记录到一个数据库中,其中包含时间戳、错误、用户ID和函数信息等信息。最好的方法是什么 我想我应该构建一个类来处理错误,并使用PDO将它们输入MYsql表 伪代码: class sbmtErr { private $errStrng; protected function sndErr($err, $usrData, $mthd){ $sndErrPDO = new myPDO; $this->errS

我正在建立一个通讯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);
   }
}
我的问题是我不知道如何隔离抛出错误的方法

有更好的方法吗


谢谢。

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

然后,不管捕获它时做了什么,都要调用一个方法(同样来自构造),将它记录到数据库中


小心不要在异常代码中抛出这些自定义异常,因为在发生数据库错误时,它可能会导致无限循环

如果数据库出现故障,您将在何处记录错误?;)看一看,我不会让人们用这些名字!SubmitError、$errorString、$sendErrorPDO。为什么是愚蠢的速记?你误解了“真相”试图表达的观点。如果可以使用submitError或$sendErrorPDO,那么为什么要使用sbmtErr或$sndErrPDO这样的“愚蠢速记”,因为它们更清晰、更具描述性。我想这就是他编码时使用的。除了“e”之外?你看起来还可以:)亲爱的,我今晚要试试这个。