### ERLEDIGT ###
siehe Lösung in #1
Hallo,
habe auch mal wieder ein Problem, diesmal mit einer Exception.
Es handelt sich um folgenden Code-Abschnitt:
Ich erzeuge ein PDO-Objekt und provoziere im Konstruktor den Wurf einer Exception, indem ich einen falschen Benutzernamen angebe.
Doch scheinbar wird die Exception vom folgenden catch-Block nicht gefangen. Ich erhalte eine „Uncaught Exception“-Fehlermeldung:
Ich komme nicht drauf, weshalb die PDOException nicht gefangen wird. :shock:
Bei SelfHTML habe ich ein ähnliches Phänomen entdeckt, hat mir aber leider nicht weiter geholfen: SELFHTML Forumsarchiv / 2009 / Januar / Uncaught exception 'Exception'
Der restliche Code der Klasse:
Zeile 28 ist das ");" des PDO-Konstruktors.
Meine PHP-Version ist 5.3.5. (LAMPP)
Btw. Wenn ich den korrekten Benutzernamen angebe funktioniert natürlich alles.
Hoffe jemand findet den Fehler :)
Gruß
Vitus
siehe Lösung in #1
Hallo,
habe auch mal wieder ein Problem, diesmal mit einer Exception.
Es handelt sich um folgenden Code-Abschnitt:
PHP:
try{
self::$db = new \PDO(
$DB_INFO['type'].':dbname='.$DB_INFO['dbname'].';host='.$DB_INFO['host'],
/*$DB_INFO['dbuser']*/'iurbvn',
$DB_INFO['dbpass'],
array(\PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\'')
);
}
catch(PDOException $e){
print 'Connection to database failed: '.$e->getMessage();
}
Ich erzeuge ein PDO-Objekt und provoziere im Konstruktor den Wurf einer Exception, indem ich einen falschen Benutzernamen angebe.
Doch scheinbar wird die Exception vom folgenden catch-Block nicht gefangen. Ich erhalte eine „Uncaught Exception“-Fehlermeldung:
Code:
<br />
<b>Fatal error</b>: Uncaught exception 'PDOException' with message 'SQLSTATE[28000] [1045] Access denied for user 'iurbvn'@'localhost' (using password: YES)' in /.../vlCMS/vlModel.php:28
Stack trace:
#0 /opt/lampp/htdocs/netbeans/vlCMS/vlModel.php(28): PDO->__construct('mysql:dbname=vl...', 'iurbvn', '*******', Array)
#1 /.../vlCMS/vlFrontController.php(21): vl\Model::init()
#2 /.../vlCMS/index.php(8): vl\FrontController::init()
#3 {main}
thrown in <b>/.../vlCMS/vlModel.php</b> on line <b>28</b><br />
Ich komme nicht drauf, weshalb die PDOException nicht gefangen wird. :shock:
Bei SelfHTML habe ich ein ähnliches Phänomen entdeckt, hat mir aber leider nicht weiter geholfen: SELFHTML Forumsarchiv / 2009 / Januar / Uncaught exception 'Exception'
Der restliche Code der Klasse:
PHP:
abstract class Model{
private static $db;
private function __construct(){}
public static function __callStatic($name, $params){
return call_user_func_array(array(self::$db, $name), $params);
}
public static function init(){
global $DB_INFO;
try{
self::$db = new \PDO(
$DB_INFO['type'].':dbname='.$DB_INFO['dbname'].';host='.$DB_INFO['host'],
/*$DB_INFO['dbuser']*/'iurbvn',
$DB_INFO['dbpass'],
array(\PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\'')
);
}
catch(PDOException $e){
print 'Connection to database failed: '.$e->getMessage();
}
}
}
// in vlFrontController.php Zeile 21:
Model::init();
Meine PHP-Version ist 5.3.5. (LAMPP)
Btw. Wenn ich den korrekten Benutzernamen angebe funktioniert natürlich alles.
Hoffe jemand findet den Fehler :)
Gruß
Vitus
Zuletzt bearbeitet: