Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 02-05-2008 17:54:54

Bast
Membre
Date d'inscription: 07-06-2007
Messages: 138

[résolu][Zend_Db][1.5.1] Zend_Db_Adapter_Exception[résolu]

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

 

#2 03-05-2008 13:20:13

Collateral
Nouveau membre
Date d'inscription: 03-05-2008
Messages: 3

Re: [résolu][Zend_Db][1.5.1] Zend_Db_Adapter_Exception[résolu]

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

 

#3 05-05-2008 09:07:54

Bast
Membre
Date d'inscription: 07-06-2007
Messages: 138

Re: [résolu][Zend_Db][1.5.1] Zend_Db_Adapter_Exception[résolu]

Le voilà.
J'ai mis un commentaire sur la ligne où apparaît l'erreur.

Code:

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

 

#4 05-05-2008 09:15:04

Collateral
Nouveau membre
Date d'inscription: 03-05-2008
Messages: 3

Re: [résolu][Zend_Db][1.5.1] Zend_Db_Adapter_Exception[résolu]

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

 

#5 05-05-2008 09:18:29

Bast
Membre
Date d'inscription: 07-06-2007
Messages: 138

Re: [résolu][Zend_Db][1.5.1] Zend_Db_Adapter_Exception[résolu]

Mon config.ini :

Code:

[general]
db.adapter            = PDO_MYSQL
db.params.host        = localhost
db.params.username    = plop
db.params.password    = plop
db.params.dbname    = ploup

Mon bootstrap :

Code:

// 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

 

#6 05-05-2008 09:21:43

stf
Membre
Date d'inscription: 03-04-2008
Messages: 156

Re: [résolu][Zend_Db][1.5.1] Zend_Db_Adapter_Exception[résolu]

"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

 

#7 05-05-2008 09:31:07

Bast
Membre
Date d'inscription: 07-06-2007
Messages: 138

Re: [résolu][Zend_Db][1.5.1] Zend_Db_Adapter_Exception[résolu]

Code:

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

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages