Bonjour,

Sur mon PC personnel(Windows 7 64 bits), j'ai installé Apache 2.4 64 bits, PHP 5.5 64 bits et MySQL 5.6 64 bits.

Après quelques tentatives, j'ai réussi sans problème à me connecter depuis une page PHP à MySQL en utilisant PDO.


Maintenant, je suis sur mon PC du boulot (Windows 7 32 bits).
J'ai téléchargé depuis le même endroit les mêmes versions, au détail près que ce sont des 32 bits à la place.

J'ai paramétré, je pense, de la même manière.

J'ai la même base (copier/coller du dossier, je suis un gros bourrin mais ça marche) et les mêmes pages PHP (copier/coller aussi).

La base marche.
Un script PHP genre "Hello world" marche aussi.
Apache marche évidement.

Mais pas moyen de faire marcher PDO :
Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in C:\MagicSite\objects\languages.php:2 Stack trace: #0 C:\MagicSite\objects\languages.php(2): PDO->__construct('mysql:host=loca...', 'magicsite', '********') #1 {main} thrown in C:\MagicSite\objects\languages.php on line 2
Voici le code PHP :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
<?php
$dbh = new PDO('mysql:host=localhost;dbname=magicsite;charset=utf8','magicsite','********'); 
$sth = $dbh->prepare('SELECT l.id, ln.name FROM language l inner join language_name ln on ln.lan_id = l.id where ln.trd_id = ? order by l.id asc');
$sth->bindValue(1, $_GET["language_id"], PDO::PARAM_INT);
$sth->execute();
print json_encode($sth->fetchall(PDO::FETCH_ASSOC));
?>

Ca va pourtant pas chercher bien loin...

Un truc que je ne pige pas : phpinfo() n'indique aucun drivers PDO.

Voici ce que j'ai configuré dans c:\apache24\conf\httpd.conf

LoadModule php5_module "c:/Php55/php5apache2_4.dll"
=> A la suite des autres "LoadModule"

AddType application/x-httpd-php .php
=> A la fin de <IfModule mime_module>

PHPIniDir "c:/php55"
=> A la fin du fichier

Et dans c:\php55\php.ini :

extension=php_pdo_mysql.dll
=> Dans la liste des extensions

Et c'est tout.

Le fichier "php_pdo_mysql.dll" est bien présent dans c:\php55\ext

phpinfo() indique bien que c'est c:\php55\php.ini qui est utilisé.

J'ai oublié quoi ?