En testant le driver pdo j'ai fait une erreur de frapper dans ma configuration (j'en fais souvent des erreurs de frappe ). J'ai tapé pdi au lieu de pdo :
et ça a fonctionné sans problème même si le driver est invalide. Le problème provient de PMO_MySGBD::factory() qui utilise PDO par défaut
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $config = PMO_MyConfig::factory(); $config->set('db.driver', 'pdi'); $config->set('db.pdodriver', 'mysql');
Comme PDO est le driver par défaut, on peut mettre n'importe quoi dans $authdb['driver']. Si le pdodriver est valide, ça passe. Je suggère ce changement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 switch($authdb['driver']){ case 'sqlite': (...) default: require_once("PMO_sgbd_pdo.php"); self::$INSTANCE = new Pmo_sgbd_pdo($object); if(!isset($object)) self::$INSTANCE->connectSgbd($authdb); break; }
De cette façon, un exception va être générée si le driver est invalide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 switch($authdb['driver']){ (...) case 'pdo': require_once("PMO_sgbd_pdo.php"); self::$INSTANCE = new Pmo_sgbd_pdo($object); if(!isset($object)) self::$INSTANCE->connectSgbd($authdb); break; default: throw new Exception("Error: ".$authdb['driver']." is not a PMO supported driver"); break;
HTH
Partager