Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Je récupère une exception que je e parviens pas à localiser... D'après mes recherches, celà pourrait être un problème de pdo non-installé, mais mon admin-sys vient de tout installer, et ça ne corrige pas mon erreur...
Voici l'erreur :
Fatal error: Uncaught exception 'Zend_Db_Adapter_Exception' with message 'SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)' in /var/wwwroot/enquete/library/Zend/Db/Adapter/Pdo/Abstract.php:131 Stack trace:
#0 /var/wwwroot/enquete/library/Zend/Db/Adapter/Abstract.php(390): Zend_Db_Adapter_Pdo_Abstract->_connect()
#1 /var/wwwroot/enquete/library/Zend/Db/Adapter/Pdo/Abstract.php(206): Zend_Db_Adapter_Abstract->query('DESCRIBE `quest...', Array)
#2 /var/wwwroot/enquete/library/Zend/Db/Adapter/Pdo/Mysql.php(137): Zend_Db_Adapter_Pdo_Abstract->query('DESCRIBE `quest...')
#3 /var/wwwroot/enquete/library/Zend/Db/Table/Abstract.php(605): Zend_Db_Adapter_Pdo_Mysql->describeTable('questions', NULL)
#4 /var/wwwroot/enquete/library/Zend/Db/Table/Abstract.php(534): Zend_Db_Table_Abstract->_setupMetadata()
#5 /var/wwwroot/enquete/library/Zend/Db/Table/Abstract.php(269): Zend_Db_Table_Abstract->_setup()
#6 /var/wwwroot/enquete/application/controllers/IndexController.php(35): Zend in /var/wwwroot/enquete/library/Zend/Db/Adapter/Pdo/Abstract.php on line 131
La ligne 35 de mon IndexController correspond à instanciation d'une classe héritant de Zend_Db_Table
Vous pensez que le pdo_mysql est mal installé ?
De quelles autres info avez vous besoin pour m'aider ?
Dernière modification par Bast (05-05-2008 09:40:09)
Hors ligne
si c'est possible affiche nous le code de ta page IndexController
Dernière modification par Collateral (03-05-2008 19:21:49)
Hors ligne
Le voilà.
J'ai mis un commentaire sur la ligne où apparaît l'erreur.
class IndexController extends Zend_Controller_Action { function indexAction(){} function stepAction () { $step_param = $this->_request->getParam('step'); // Récup du num de la page $config_quest = new Zend_Config_Ini('../application/config/config.ini', 'questions');// Récup des choix de réponses correspondant aux numéros des questions // Test de type (sécurité) $int_validator = new Zend_Validate_Int(); if (!$int_validator->isValid($step_param)){ // On tombe ici lorsque le param 'step' passé n'est pas un entier --> Redirection vers l'index du site $this->_redirect('/'); } else { // instanciation d'un step avec ce num de page $my_step = new Step($step_param); $step_x = $my_step->getCurrentStepNumber(); if (!$my_step->setQuestionsToDisplay(explode(',', $config_quest->pages->$step_x))) { die('Erreur de chargement des questions. Vérifier le fichier config.ini'); } // Récupération des intitulés des questions/réponses $qr_set = array(); $questions = new Questions(); /* LIGNE GENERANT L'ERREUR (celle d'en dessous l'aurait générée tout autant) */ $reponses = new Reponses(); $questions_rowset = $questions->fetchAll($my_step->getQuestionsToDisplay()); foreach($questions_rowset as $quest){ $temp_reponses = array(); $ses_reponses = $quest->findReponses(); //cf. http://julien-pauli.developpez.com/tutoriels/zend-framework/presentation/?page=Zend_Db#LIX-G-6 foreach($ses_reponses as $une_reponse) { $temp_reponses[] = $une_reponse->rep_intitule; } $qr_set[] = array($quest->quest_intitule, $quest->quest_type_input, $temp_reponses); } // Variables à passer à la vue $this->view->title = 'Page ' . $my_step->getCurrentStepNumber() . ' du questionnaire'; $this->view->step = $my_step; $this->view->qr_set = $qr_set; } } }
Dernière modification par Bast (05-05-2008 09:08:25)
Hors ligne
vérifie tes paramaitre de connexion à la base
peut être que j'ai pas bien suivit ton code mais comment tu fait la connexion à ta base de donnée
c'est un problème de connexion à la base.
Hors ligne
Mon config.ini :
[general] db.adapter = PDO_MYSQL db.params.host = localhost db.params.username = plop db.params.password = plop db.params.dbname = ploup
Mon bootstrap :
// voir toutes les erreurs error_reporting(E_ALL|E_STRICT); ini_set('display_errors', 1); date_default_timezone_set('Europe/Paris'); // config des répertoires, chargement de classes... set_include_path('.' . PATH_SEPARATOR . '../library/' . PATH_SEPARATOR . '../library/MyClass/' . PATH_SEPARATOR . '../application/models/' . PATH_SEPARATOR . '../application/config/' . PATH_SEPARATOR . get_include_path()); include "Zend/Loader.php"; Zend_Loader::registerAutoload(); // comme ça pas beson d'include les classes (elles se loadent automatiquement si besoin) // Chargement des infos générales de config (tirées du fichier config et stockées dans le registre) $config = new Zend_Config_Ini('../application/config/config.ini', 'general'); $registry = Zend_Registry::getInstance(); $registry->set('config', $config); // config de la base de données try { $db = Zend_Db::factory($config->db); Zend_Db_Table::setDefaultAdapter($db); } catch (Zend_Db_Adapter_Exception $e) { echo $e->getMessage(); } // setup controller -> pour que le frontController sache où sont les autres controllers $frontController = Zend_Controller_Front::getInstance(); $frontController->throwExceptions(true); $frontController->setControllerDirectory('../application/controllers'); Zend_Layout::startMVC(array('layoutPath' => '../application/layouts')); /*$frontController->setRouter(new Zend_Controller_ModuleRouter()) ->setDispatcher(new Zend_Controller_ModuleDispatcher());*/ // run ! $frontController->dispatch();
Dernière modification par Bast (05-05-2008 09:20:52)
Hors ligne
"plop" existe t'il? sur que c'est le bon password?
Ta base de donnée existe?
Dans ton phpinfo, tu as bien PDO d'activé ?
Hors ligne
additional .ini files parsed : /etc/php5/apache2/conf.d/gd.ini, /etc/php5/apache2/conf.d/mssql.ini, /etc/php5/apache2/conf.d/mysql.ini, /etc/php5/apache2/conf.d/mysqli.ini, /etc/php5/apache2/conf.d/pdo.ini, /etc/php5/apache2/conf.d/pdo_mysql.ini, /etc/php5/apache2/conf.d/pdo_pgsql.ini, /etc/php5/apache2/conf.d/pgsql.ini, /etc/php5/apache2/conf.d/xsl.ini PDO PDO support enabled PDO drivers mysql pdo_mysql PDO Driver for MySQL, client library version 5.0.32
Je ne vois rien d'autre dans mon phpinfo
Je peux accéder à la base avec phpmyadmin (mêmes id de connexion que dans le config.ini). J'ai aussi essayé de mettre les id de connexion du root, j'ai la même erreur.
Se pourrait-il que "localhost" ne soit pas la bonne info ? Je me renseigne et je vous tiens au courant... Si vous trouvez un bug dans mon code / config, prévenez moi
EDIT : bingo. Le serveur sql n'était pas sur la même machine ! En changeant 'localhost' par l'ip de la machine exécutant mysql, je n'ai plus d'erreur.
Désolé du dérangement (c'est ma 2e semaine, je ne connais pas encore l'archi de l'entreprise ^^)
Dernière modification par Bast (05-05-2008 09:39:42)
Hors ligne
Pages: 1