2012-05-12 13 views
2

私はPDOに苦労しています。 PDOクラスを拡張し、データベースに接続する際にエラーが発生するたびに(間違ったパスワードなどで)、例外をキャッチしません。ここでPDO接続の例外がキャッチ

現在のコードされています

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 

編集:原因、それは動作しませんでした名前空間の使用を解決

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(); 
    } 

} 

ここで示されたエラーです。

を変更:

catch(PDOException $e) 

へ:

catch(\PDOException $e) 
+0

どのような例外がスローされますか? –

+0

メインポストにエラーを追加しました。 – rasmusx

答えて

0

移動のtry/catch parent::__construct($dsn, $user, $pass, $opts);

2

は、そのクラスのPDOException」を思わ以内にあなたの名前空間に存在しません。キャッチブロックを変更しようとしてください:catch(\PDOException $e)

+0

はい、それが問題でした。ありがとうございました。 – rasmusx

関連する問題