2012-12-29 13 views
5

No eee, nie wiem, co zrobiłem źle ....PDO twierdzi, że przechylił wyjątek, mimo że znajduje się w bloku try/catch?

ten kod:

 try { 
      $this->CONN = new \PDO('mysql:dbname='.PASTEAES_DBNAME.';host='.PASTEAES_SERVER, PASTEAES_USERNAME, PASTEAES_PASSWORD); 
      $this->CONN->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     } catch(PDOException $e) { 
      $this->raiseError('Fatal MySQL error', $e->getMessage()); 
     } 

Raporty mi to:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000] [1049] Unknown database 'pasteaes'' in /var/www/pasteaes/common/class.pasteaes.php on line 25

Ale jak ty widać, że jest wyraźnie w bloku try i catch.

Klasa, w której znajduje się dany kod, jest nazwana, dlatego użyłem "\ PDO" zamiast "PDO" na drugiej linii kodu, który udostępniłem powyżej.

I o tak, tak, wiem, że DB nie istnieje, ale nadal nie chcę, aby to się działo w przyszłości (nie, że tak będzie). Chcę poprawnie obsłużyć błędy :(

Odpowiedz

12
catch(\PDOException $e) 
    ^
+0

Tak, właśnie to wymyśliłem, dzięki za wszystko. EDYCJA: 12 długich minut ... Wrócę po twoją akceptowaną odpowiedź. –

Powiązane problemy