php - PDO连接异常捕获

标签 php exception pdo try-catch

我在 PDO 方面遇到了困难。我扩展了 PDO 类,每次连接数据库时出错(密码错误等)时,它都不会捕获异常。

这是当前代码:

public function __construct() {
    $dsn  = 'mysql:host=' . Config::host .
            ';dbname='    . Config::db;
    $user = Config::user;
    $pass = Config::pass;
    $opts = array(
        \PDO::ATTR_PERSISTENT => true,
        \PDO::ATTR_ERRMODE    => \PDO::ERRMODE_EXCEPTION 
    ); 

    try {
        parent::__construct($dsn, $user, $pass, $opts);
    } catch(PDOException $e) {
        echo $e->getMessage();
    }

}

这是显示的错误:

Fatal error: Uncaught exception 'PDOException' with message 
'SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost'
(using password: YES)' in
/home/rasmus/www/n1_cms/N1/Core/Database.php on line 21

PDOException: SQLSTATE[HY000] [1045] Access denied for user
'root'@'localhost' (using password: YES) in
/home/rasmus/www/n1_cms/N1/Core/Database.php on line 21

编辑:解决方案

由于使用了命名空间,它不起作用。

更改:

catch(PDOException $e)

致:

catch(\PDOException $e)

最佳答案

您的命名空间中似乎不存在“PDOException”类。尝试更改 catch block :catch(\PDOException $e)

关于php - PDO连接异常捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10566238/

相关文章:

java - 如果抛出异常,返回值不受影响吗?

php - PDO 使用 MySQL 的 NOW()

PHP MYSQL JOIN显示

java - 如何将 XML 配置转换为 Java

Spring-WS - 返回异常的有效响应

php - PHP 示例代码从 mysqli 到 PDO 的翻译

php - PDO 驱动程序特定错误代码

php - 为什么 cookie 删除在我的服务器上不起作用,但在我的本地系统上工作正常?

php - 如何在 windows/wamp 上启用 php_redis.dll?

php - 如何得到一个案例的总和?