Uncaught exception 'PDOException' with message 'impossible de trouver un pilote à l'aide de Sqlite: une mauvaise configuration?
Je suis en cours d'exécution PHP 5.4.5 sur Apache 2.2 sur Windows XP. Deux fois 🙂 les Deux machines sont mis en place, je pense que, à l'identique, mais une machine qui fonctionne bien, tandis que l'autre génère l'erreur. (Ils sont tous deux machines de développement - l'une est pour l'élaboration et l'autre est mis en quarantaine testeur)
J'ai les extensions php_pdo.dll, php_pdo_sqlite.dll et php_sqlite.dll tous les permis (si seulement php_pdo_sqlite.dll est dans le répertoire ext, et pdo_sqlite.dll est en fait appelé php_sqlite3.dll - mais je comprends que tout est comme il devrait l'être.).
Si ça aide, il échoue au moment de la construction. Je suis emballage de la PDO avec une classe de mon propre: la délinquance code ressemble à ceci:
classe
ADO extends PDO {
function __construct ($cnString = 'sqlite:..') {
parent::__construct ($cnString);
$this->setAttribute (PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
...
mais cela ne veut pas expliquer ce qui se passe, parce que, comme je l'ai dit, cela fonctionne bien sur le jeu de la machine.
Je pense que je vais juste aveugle et ne peut pas voir quelque chose d'évident 🙂 Toutes les idées, les gens?
Merci d'avance.
- php.net/manual/en/pdo.getavailabledrivers.php - Ne vous en fait voir de sqlite là? Si non, votre problème n'est PAS dans votre code comme-est, mais dans la configuration de PHP.
- Sont les extensions répertoriées comme étant activé dans le phpinfo?
- pdo::getAvailableDrivers ne retourne rien.
- Non, les extensions ne sont pas répertoriés dans le phpinfo. J'ai juste remarqué quelque chose de bizarre: php répertorie les extension_dir comme C:\php mais le fichier ini définit comme C:\PHP\ext. Il se présente à moi pour me demander si je suis à la recherche d'un raté fichier ini: d'où vient-PHP le trouver?
- ...plus tard: Non, seulement un php.ini, là où il doit être.
Vous devez vous connecter pour publier un commentaire.
Trouvé! J'ai été en droit - c'est évident, et j'allais à l'aveugle 🙂
Dans Apache httpd.conf, dans la section marquée #BEGIN PHP INSTALLER MODIFICATIONS... la PHPIniDir avait été commenté. Aucune idée pourquoi, rien à voir avec moi. Doit avoir été un terrible installer. Mais, je decommented elle, et maintenant, tout est comme il devrait être.
Me demande pourquoi le PHP n'ai pas à me plaindre qu'il n'y a aucun fichier ini? (Il n'y a rien dans le journal des erreurs). L'un à surveiller dans l'avenir, je pense.
Merci pour le leader de questions 🙂
J'ai eu le même message d'erreur après le passage à une nouvelle version de PHP.
La solution est simple, mais peut-être qu'il poster ici peut toujours aider quelqu'un qui se termine ici par le biais de Google...
J'avais encore de ne pas encoder les pdo_mysql /pdo_mysqlite extension dans mon php.fichier ini (selon que vous utilisez mysql ou myslq version lite)
Afin de ne pas encoder ces lignes (enlever le 😉