php - PDO catch PDOException fails on construction -


i've seen variations of code on place, including many s.o. posts:

class db extends pdo {      public function __construct( $dbconf ) {         $options = array(             pdo::mysql_attr_init_command => 'set names utf8',             pdo::attr_default_fetch_mode => pdo::fetch_assoc,             pdo::attr_errmode => pdo::errmode_exception,             pdo::attr_persistent => $dbconf['persist'] ? true : false             );         try {             parent::__construct('mysql:host='. $dbconf['dbhost'] .';port=3306;dbname='. $dbconf['dbname'] .';' , $dbconf['dbuser'],                 $dbconf['dbpass'],                 $options);         } catch (pdoexception $e) {             $this->myerror( $e->getmessage() );             // echo 'connection failed ... '. $e->getmessage();         }     }      ...      private function myerror( $error ) {         echo 'connection failed ... '. $error;     }  } 

the class instantiated $db = new db( $config );, , works great if connection valid, seems pdoexception doesn't work if connection fails. catch totally fails execute $this->myerror(...) function! instead of useful $e->getmessage() says "connection failed ... access denied user blah", php fatal error: call member function myerror() on non-object in /.../lib/pdo.class.php on line 16.

if comment out first line in catch , uncomment echo, works expected, reporting reason connection error. why message available in catch not in simple myerror class function?

this post ... php, pdo, , exceptions ... seems applicable, doesn't explain much. catch (pdoexception $e) obsolete, or dysfunctional under circumstances? how keep work?

the reason being pdo::__construct creates object upon successful connection. when call parent constructor , fails object doesn't exist anymore. should use self::myerror() access error function statically in case.


Comments

Popular posts from this blog

javascript - Jquery show_hide, what to add in order to make the page scroll to the bottom of the hidden field once button is clicked -

javascript - Highcharts multi-color line -

javascript - Enter key does not work in search box -