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 :
Voici le code PHP :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
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 ?
Partager