【发布时间】:2014-07-05 11:24:21
【问题描述】:
我使用 PDO 建立了以下连接。显然它不会连接,因为我没有指定主机或数据库(或用户或密码)
$dbh = new PDO('mysql:host=;dbname=', '', '');
..那么我该如何捕捉异常呢?我正在尝试这样的事情:
try {
$dbh = new PDO('mysql:host=;dbname=', '', '');
} catch (Exception $e) {
echo 'Error: ', $e->getMessage(), "\n";
}
.. 但没有消息显示。为什么?
【问题讨论】:
-
尝试在打开连接后立即添加
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);。 -
如果没有在连接字符串中指定任何内容,PDO 将不会尝试连接任何内容,因此也不例外。在连接字符串中放入任何内容,您将看到您的异常。
-
如果你想捕捉 PDO execption 然后捕捉
PDOException而不是Exception.. 有意义吗?