数据库中存储错误的错误函数

时间:2013-07-11 10:52:43

标签: php mysql database error-handling pdo

我有这个功能,我用来处理我的错误
在php查询和类似的东西

但我认为如果我可以保存数据库中的错误然后在我的管理控制面板中显示它会更好,所以没有人能看到我在我的网站上的错误

这是功能:

function er($str) {
global $db;
if (!$str) {
$errornum = $db->errorinfo();
echo $errornum[2];
die;
  }
}

在这里我试图做我说的我想做的事情:

function er($str) {
global $db;
if (!$str) {
$errornum = $db->errorinfo();
$en = $errornum[2];
echo "".$en."";
$db->query("INSERT INTO `error` (`con`) VALUES ('$en')");
die;
  }
}

The Problem Is :   
  

查询剂量做任何事情

The Reason Is :
  

我认为原因是$ en是空的...所以插入不会做任何事情,因为它有一个名称将其插入数据库,但是$ en不是空的,因为当我回应它我输出错误..当我试图让它工作时,我想到了我用(示例)替换了$ en并且它工作了并且(示例)在数据库中存在

Fix :
  

我不确定,但我认为如果我可以将它粘贴到$ en的实际值...那么它将起作用:D

     

但我需要你帮助我做到这一点或指出我正确的方向

2 个答案:

答案 0 :(得分:1)

好。

你必须摆脱:

  • no die()
  • 没有错误回应浏览器
  • 无数据库记录

你真正需要做的事情:

通过这种方式,您将在cpanel中看到所有错误,并且没有任何错误会泄露给用户。

答案 1 :(得分:-1)

$db->query("INSERT INTO `error` (`con`) VALUES ('$en')");

而不是尝试

$db->query("INSERT INTO `error` (`con`) VALUES ('".$en."') )";

如果它回应错误我怀疑$ en是空的,所以它可能只是一个字符串插值问题。