2009-07-12 6 views
9

J'essaie d'installer mon application ZEND sur mon serveur apache sous UNIX. Dans un premier temps mon hôte didnot soutenir AOP, et je l'ai obtenu a permis en leur demandant un mail.But maintenant je reçois une erreur disant Le pilote MySQL n'est pas installéErreur MySQL non installée pour l'application Zend

La trace de la pile est comme:

An error occurred 
Application error 
Exception information: 

Message: The mysql driver is not currently installed 
Stack trace: 

#0 /home/windchim/worminc/library/Zend/Db/Adapter/Abstract.php(770): Zend_Db_Adapter_Pdo_Abstract->_connect() 
#1 /home/windchim/worminc/library/Zend/Db/Adapter/Abstract.php(840): Zend_Db_Adapter_Abstract->quote('aaditya258', NULL) 
#2 /home/windchim/worminc/library/Zend/Auth/Adapter/DbTable.php(354): Zend_Db_Adapter_Abstract->quoteInto('`password` = MD...', 'aaditya258') 
#3 /home/windchim/worminc/library/Zend/Auth/Adapter/DbTable.php(285): Zend_Auth_Adapter_DbTable->_authenticateCreateSelect() 
#4 /home/windchim/worminc/library/Zend/Auth.php(117): Zend_Auth_Adapter_DbTable->authenticate() 
#5 /home/windchim/worminc/application/controllers/LoginController.php(117): Zend_Auth->authenticate(Object(Zend_Auth_Adapter_DbTable)) 
#6 /home/windchim/worminc/library/Zend/Controller/Action.php(503): LoginController->processAction() 
#7 /home/windchim/worminc/library/Zend/Controller/Dispatcher/Standard.php(285): Zend_Controller_Action->dispatch('processAction') 
#8 /home/windchim/worminc/library/Zend/Controller/Front.php(934): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) 
#9 /home/windchim/public_html/worm/index.php(47): Zend_Controller_Front->dispatch() 
#10 {main} 

Comment cela peut-il être résolu? S'il vous plaît aider

Répondre

16

PDO, contrairement aux fonctions mysql_ *, prend en charge un certain nombre de moteurs de base de données. Pour ce faire, il a besoin d'une bibliothèque de pilotes pour chacun d'entre eux.

Vous avez le "noyau" de PDO installé mais pas le pilote MySQL - il suffit de l'installer (appelé pdo_mysql) et tout ira bien.

Votre php.ini devrait avoir une de ces (Windows ou Linux):

extension=php_pdo_mysql.dll 
extension=php_pdo_mysql.so 
+0

Dois-je installer quelque chose ou juste une entrée sur php.ini? – Arc

+1

@Arkid: Votre fournisseur d'hébergement devra probablement installer le module de pilote MySQL PDO séparé et s'assurer qu'il est activé dans la configuration de PHP. – Rob

+0

Si vous ajoutez manuellement des extensions dans un seul fichier, n'oubliez pas de charger pdo.so avant pdo_mysql.so, sinon cela ne fonctionnera pas. –

4

dans le fichier php.ini u suffit d'activer la ligne suivante extension = php_pdo_mysql.dll (moyens supprimer des commentaires devant elle

alors il sera exécuté correctement.

4

Comme d'autres l'ont mentionné, vous devez activer l'extension pdo_mysql. Cependant, en exécutant php (5.3) en tant que module apache (2.2) sur ma machine (windows 7), cela ne fonctionnerait toujours pas. J'ai compris que la valeur d'extension_dir dans php.ini doit être définie en utilisant un chemin absolu (relatif juste ne fonctionnerait pas)!

J'espère que cela aidera certains d'entre vous!

-1

F.i. Vérifiez l'orthographe de error_reporting = E_ALL & ~ E_DEPRECATED & ~ E_STRICT (devrait être comme celui-ci au stade de la production)

Si vous tapez error_reporting (valeur); ou quelque chose comme ça (généralement pour les tests, la « valeur » peut-être « 0 »)

vous pouvez obtenir cette erreur « Le pilote MySQL n'est pas installé » si vous utilisez

Ainsi, toute erreur de syntaxe dans le php.ini pourrait générer cette erreur. Si vous installez votre système avec précaution, vous risquez de vous perdre facilement, car vous savez qu'il n'y a pas d'erreur lors de l'installation ou des réglages de db. Si tout le reste est correct, alors optez pour une erreur de syntaxe dans php.ini.

Questions connexes