我在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)发布于 2012-05-12 18:43:30
似乎类'PDOException‘不存在于您的命名空间中。尝试更改catch块:catch(\PDOException $e)
发布于 2012-05-12 18:38:02
在parent::__construct($dsn, $user, $pass, $opts);中移动try/catch
https://stackoverflow.com/questions/10566238
复制相似问题