【问题标题】:PHP PDO - What needs to try catch?PHP PDO - 什么需要尝试捕获?
【发布时间】:2016-05-11 09:46:58
【问题描述】:

我正在使用 PHP 和 PDO。现在我想在出现问题时建立一种日志。 PDO 会出现什么问题?

现在我有这些测试:

连接测试

try {
    $this->pdo = new PDO($dsn, $credentials['user'], $credentials['pass'], $options);
} catch(Exception $e) {
    $this->file->put( date('Y-m-d') . '.txt', 'log', 'Database error');
}

执行测试

try {
    $stmt->execute();
} catch(Exception $e) {
    $this->error->log('SQL', 'query error');
}

还有什么好的测试吗?

【问题讨论】:

  • 为什么不使用异常的消息呢?这样会更详细地说明发生的事情。
  • @halloei 好点!我可能会的。
  • 你为什么要catching?如果您没有发现,该错误将自动记录下来。它还具有保持程序健全的好处;因为如果您无法创建数据库连接或执行查询,您会怎么做?实际上:可能什么都没有。死亡是唯一真正的选择,而未捕获的异常可以很好地做到这一点。
  • @deceze 我有一个非常简单的管理工具来显示我的错误。如果一个错误连续出现 10 次,我会邮寄给自己,以便解决问题。
  • 监控你的 PHP 日志并做同样的事情......!?

标签: php mysql exception pdo try-catch


【解决方案1】:

您不会在日志中记录异常消息。我建议你在你的捕获中做这样的事情:

$this->error->log('SQL', $e . PHP_EOL);

这将为您提供更易于理解和可读的日志。

关于使用 PDO 捕获的异常,您可以阅读该帖子:How to handle PDO exceptions

【讨论】:

  • 好点。不是我要的,但无论如何都是很好的附加信息。谢谢!
猜你喜欢
  • 2012-11-02
  • 2013-06-22
  • 1970-01-01
  • 1970-01-01
  • 2016-09-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-29
  • 2013-11-18
相关资源
最近更新 更多