Page 1 sur 3
Erreur driver PDO
Posté : 24 mars 2012, 21:54
par slama
Bonsoir,
Cela fait 1 mois que je suis bloqué sur cette erreur (dizaines de recherches web...) et cela commence réellement à m’embêter.
J'ai crée un système de login BDD en PHP et lorsque j'essayais de me conncter, j'avais à chaque fois mon message "Bad credentials".
J'ai activé le mode "E_ALL" du php.ini pour voir les erreurs et je me suis retrouvé devant cet erreur :
Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in C:\wamp\www\MyProject\classes\managers\pdo\AbstractPdoManager.class.php:17 Stack trace: #0 C:\wamp\www\MyProject\classes\managers\pdo\AbstractPdoManager.class.php(17): PDO->__construct('mysql:host=loca...', 'root', '') #1 C:\wamp\www\MyProject\classes\managers\ManagerFactory.class.php(13): AbstractPdoManager->__construct() #2 C:\wamp\www\MyProject\index.php(11): ManagerFactory::getMemberManager() #3 {main} thrown in C:\wamp\www\MyProject\classes\managers\pdo\AbstractPdoManager.class.php on line 17
J'ai activer, désactivé, réactiver les extensions qu'il faut (mysql, mysqli, pdo ...), je viens de désinstaller puis réinstaller wamp mais aucun effet... J'ai même crée un utilisateur spécial ayant accès seulement à cette base en l'utilisant mais aucun effet...
Merci de m'aider au plus vite, j'étais motivé pour faire un bon projet en php et cela m'a freiné...
Re: Erreur driver PDO
Posté : 24 mars 2012, 22:02
par xTG
Qu'est ce que cela donne avec les fonctions mysql_xxx et mysqli_xxx ?
Edit : exact moogli, ce ne sont absolument pas les même drivers qui sont utilisés j'avais oublié...
Re: Erreur driver PDO
Posté : 24 mars 2012, 22:11
par moogli
peux tu nous montrer la partie du php.ini correspondant aux extensions chargées ?
il faut charger php_pdo_mysql.dll en plus de php_pdo !
@+
Re: Erreur driver PDO
Posté : 24 mars 2012, 22:44
par slama
La partie qui nous intéresse dans le php.ini :
;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_dba.dll
extension=php_mbstring.dll
;extension=php_exif.dll
;extension=php_fileinfo.dll
extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_ming.dll
;extension=php_mssql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8.dll
;extension=php_oci8_11g.dll
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_phar.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_soap.dll
;extension=php_sockets.dll
;extension=php_sqlite.dll
;extension=php_sqlite3.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
;extension=php_zip.dll
Re: Erreur driver PDO
Posté : 25 mars 2012, 00:16
par moogli
ça a l'air bon :/
et y a quoi la : AbstractPdoManager.class.php on line 17 ?
@+
Re: Erreur driver PDO
Posté : 25 mars 2012, 00:53
par slama
Voici mon abstract pdo manager :
<?php
abstract class AbstractPdoManager {
const DRIVER = 'mysql';
const HOST = 'localhost';
const PORT = '3306';
const DATABASE_NAME = 'database';
const USER = 'root';
const PASSWORD = '';
protected $pdo;
public function __construct() {
$dsn = self::DRIVER.':host='.self::HOST.';port='.self::PORT.';dbname='.self::DATABASE_NAME;
$this->pdo = new PDO($dsn, self::USER, self::PASSWORD); // la fameuse ligne 17
}
}
?>
Re: Erreur driver PDO
Posté : 25 mars 2012, 03:59
par moogli
pas de soucis coté code (test simple avec)
<?php
abstract class AbstractPdoManager {
const DRIVER = 'mysql';
const HOST = 'localhost';
const PORT = '3306';
const DATABASE_NAME = 'test';
const USER = 'root';
const PASSWORD = '';
protected $pdo;
public function __construct() {
$dsn = self::DRIVER.':host='.self::HOST.';port='.self::PORT.';dbname='.self::DATABASE_NAME;
$this->pdo = new PDO($dsn, self::USER, self::PASSWORD); // la fameuse ligne 17
}
}
class test extends AbstractPdoManager{
public function __construct(){
parent::__construct();
}
public function test(){
$res = $this->pdo->query('select version() as v;');
$data = $res->fetch(PDO::FETCH_OBJ);
var_dump($data);
$res->closeCursor();
}
}
try {
$a = new test();
$a->test();
}
catch (Exception $e){
echo $e->getMessage();
}
A tu redémarré apache ?
après je sèche un peux voir si tu n'a pas des erreurs dans le log d'apache et si tu a bien les lib au bon endroit.
@+
Re: Erreur driver PDO
Posté : 25 mars 2012, 13:23
par Calimero
A tu redémarré apache ?
après je sèche un peux voir si tu n'a pas des erreurs dans le log d'apache et si tu a bien les lib au bon endroit.
@+
En complément du conseil de moogli (redémarrer apache), si ça ne change rien tu peux t'assurer du bon chargement de ton php.ini et de ses directives avec :
http://fr2.php.net/manual/fr/function.p ... d-file.php
http://fr2.php.net/manual/fr/function.p ... -files.php
et
http://fr2.php.net/manual/fr/function.e ... loaded.php
Re: Erreur driver PDO
Posté : 25 mars 2012, 14:43
par slama
J'ai bien redémarré Apache.
Voici les logs apache_error :
[Sun Mar 25 14:27:49 2012] [notice] Apache/2.2.21 (Win64) PHP/5.3.10 configured -- resuming normal operations
[Sun Mar 25 14:27:49 2012] [notice] Server built: Sep 24 2011 19:57:51
[Sun Mar 25 14:27:49 2012] [notice] Parent: Created child process 5852
[Sun Mar 25 14:27:49 2012] [notice] Child 5852: Child process is running
[Sun Mar 25 14:27:49 2012] [notice] Child 5852: Acquired the start mutex.
[Sun Mar 25 14:27:49 2012] [notice] Child 5852: Starting 64 worker threads.
[Sun Mar 25 14:27:49 2012] [notice] Child 5852: Starting thread to listen on port 80.
[Sun Mar 25 14:27:49 2012] [notice] Child 5852: Starting thread to listen on port 80.
[Sun Mar 25 14:37:39 2012] [error] [client 127.0.0.1] File does not exist: C:/wamp/www/favicon.ico
[Sun Mar 25 14:37:46 2012] [error] [client 127.0.0.1] File does not exist: C:/wamp/www/favicon.ico
------------------------------
Rien d'anormal...
Le php.ini est bel et bien chargé (php_ini_loaded_file())....
Re: Erreur driver PDO
Posté : 25 mars 2012, 20:33
par Calimero
J'ai bien redémarré Apache.
Voici les logs apache_error :
[Sun Mar 25 14:27:49 2012] [notice] Apache/2.2.21 (Win64) PHP/5.3.10 configured -- resuming normal operations
PHP et toutes ses extensions sont-ils tous bien compilés en 64bits ?
Re: Erreur driver PDO
Posté : 26 mars 2012, 11:44
par slama
Comment vérifier cela ?
Re: Erreur driver PDO
Posté : 26 mars 2012, 11:52
par stealth35
prend un version officiel de PHP, de tout façon sous Win le PHp en 64bit ne sert a rien
Re: Erreur driver PDO
Posté : 26 mars 2012, 17:10
par slama
Ça a un rapport avec mon problème ?
Re: Erreur driver PDO
Posté : 26 mars 2012, 21:56
par moogli
Possible s'il ne trouve pas les libs (ou que tu essai de lui filer les libs 32b à une version 64b).
@+
Re: Erreur driver PDO
Posté : 26 mars 2012, 23:27
par stealth35
Ça a un rapport avec mon problème ?
oui si t'avais une vrai version tu n'auras pas de problème