bonjour,
je suis bloqué face à cet erreur en essayant de re-ecrire ma class pdo
Fatal error: Uncaught exception 'PDOException' with message 'Erreur baseDBAcccess: could not find driver<br />N°
le code
l'autre classe qui utilise cette premiere classe et je pense que c'est la le probleme que se pose
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 abstract class BaseDBAccess { var $sDriver=''; var $sHost=''; var $sDatabase=''; var $sUser=''; var $sPassword=''; private static $oDatabase; var $oPdo=null; var $sQuery=''; var $oPDOStatement=null; /** * Constructor for database connection * @param string $sDriver * @param string $sHost * @param string $sDatabase * @param string $sUser * @param string $sPassword */ public function __construct($sDriver='',$sHost='',$sDatabase='',$sUser='',$sPassword='') { try{ $this->setDriver($sDriver); $this->setHost($sHost); $this->setDatabase($sDatabase); $this->setUser($sUser); $this->setPassword($sPassword); $sDrive = $this->sDriver.':dbname='.$this->sDatabase.";host=".$this->sHost; $this->oPdo=new PDO($sDrive, $this->sUser, $this->sPassword); $this->oPdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); }catch(PDOException $e){ $msg = 'Erreur baseDBAcccess: '.$e->getMessage().'<br />'; $msg .= 'N° : '.$e->getCode(); throw new PDOException($msg); } return $this->oPdo; } /** * To get instance of Database * * @param string $sDriver * @param string $sHost * @param string $sDatabase * @param string $sUser * @param string $sPassword * @return Database object */ public static function getInstance($sDriver='',$sHost='',$sDatabase='',$sUser='',$sPassword=''){ if(is_null(self::$oDatabase)){ self::$oDatabase = new BaseDBAccess($sDriver,$sHost,$sDatabase,$sUser,$sPassword); } return self::$oDatabase; } }
et le fichier ou j'appel les classes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 require_once ("BaseDBAccess.php"); class PostgresqlDBAccess extends BaseDBAccess { public function OpenDBConnection($dbConnectionParameters) { $dbClass = $dbConnectionParameters['classname']; $dbDriver =$dbConnectionParameters['driver']; $dbHost =$dbConnectionParameters['host']; $dbName =$dbConnectionParameters['databasename']; $dbLogin =$dbConnectionParameters['login']; $dbPass =$dbConnectionParameters['pass']; try { $newDbAccessObjet = BaseDBAccess::getInstance($dbDriver,$dbHost,$dbName,$dbLogin,$dbPass); }catch(PDOException $e){ echo 'Erreur OpenDBConnection: '.$e->getMessage().'<br />'; echo 'N° : '.$e->getCode(); } } }
je pense que je suis presque mais si vous pouver m'apporter des conseils
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 require_once("PostgresqlDBAccess.php"); require_once ("BaseDBAccess.php"); $driver = "pgsql"; $host = "localhost"; $databasename ="base"; $login = "postgres"; $pass = "admin"; $dbConnectionParameters = array( "driver" => $driver, "host" => $host, "databasename" => $databasename, "login" => $login, "pass" => $pass ); $pgDBConn = new PostgresqlDBAccess(); $a = $pgDBConn->OpenDBConnection($dbConnectionParameters);
remarques : les drivers au nieavu du serveurs sont tous activés php_pdo_pgsql et php_pdo
merci
Partager