【问题标题】:can we have two error modes in pdo我们可以在 pdo 中有两种错误模式吗
【发布时间】:2011-06-17 17:32:12
【问题描述】:

我可以使用设置属性加入pdo's 的警告和错误

现在我有这条线

setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION | PDO::ERRMODE_WARNING );

我收到警告

警告:PDO::setAttribute() [pdo.setattribute]:SQLSTATE[HY000]: 一般错误:错误模式无效 C:\wamp\www\PDO\MyPDO.php 第 18 行

如果我删除 | PDO::ERRMODE_WARNING 它效果很好,但我也喜欢 c 警告。在 pdo 中是否允许或有其他方式? .

【问题讨论】:

  • 我不这么认为。它有什么意义 - 你想要一个警告抛出一个异常吗?
  • 谢谢Pekka,我只是觉得得到警告也很好。所以我想把它们结合起来,但没问题我很好,有例外。欢呼
  • 可以选择PDO中的3种报错方式(无、警告、异常),除了连接调用,总会抛出异常。正如 Pekka 所说,使用警告和异常是没有意义的。

标签: php pdo


【解决方案1】:

如果您确实需要这样做,您可以编写一个函数,在您捕获 PDOException 时调用该函数,该函数调用 trigger_error(),但您需要自己在每个 catch 块中调用它。

// Issue a notice/warning/whatever from a PDOException error message
function my_pdoerror($PDOException) {
   trigger_error($PDOException->getMessage(), E_USER_NOTICE);
}

try {
  // something with PDO
}
catch (PDOException $e) {
   // Call this in your catch blocks.
   my_pdoerror($e);
}

【讨论】:

  • 谢谢,但我不会这样做 我在 PHP 手册上读了一些东西,这是一篇关于连接异常的帖子,有时 pdo 不会显示异常和错误,所以如果你在那里打开警告你会看到 pdo 警告你可能的错误代码尝试。
猜你喜欢
  • 2021-06-25
  • 1970-01-01
  • 2011-10-18
  • 2015-04-02
  • 2015-01-06
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 2021-12-23
相关资源
最近更新 更多