Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 21-06-2013 10:48:05

debounette
Nouveau membre
Date d'inscription: 21-06-2013
Messages: 2

Problème de création de sondage erreur DB

Bonjour,

Je suis en stage dans une entreprise qui utilise le zend framework que je ne connaissais pas du tout avant d'être ici.

Mon supérieur technique est en maladie, il ne m'a pas expliqué grand chose et là j'ai une erreur sur le post d'un nouveau sondage.

L'erreur apparait quand je consulte le sondage sur le site mais se valide bien dans la partie admin.

Je vous copie colle l'erreur ci dessous , moi de mon coté j'ai upload tous les fichiers nommés dans l'erreur, j'ai regardé les lignes qu'ils indiquaient mais à part que c'est un problème de paramètre , je ne vois pas d'où cela vient.

Merci de votre aide.

The following error occurred:
exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[HY093]: Invalid parameter number: no parameters were bound' in
/home/okarito/sd/groupement-dem/library/Zend/Db/Statement/Pdo.php:238
Stack trace:
#0 /home/okarito/sd/groupement-dem/library/Zend/Db/Statement.php(303): Zend_Db_Statement_Pdo->_execute(Array)
#1 /home/okarito/sd/groupement-dem/library/Zend/Db/Adapter/Abstract.php(433): Zend_Db_Statement->execute(Array)
#2 /home/okarito/sd/groupement-dem/library/Zend/Db/Adapter/Pdo/Abstract.php(230): Zend_Db_Adapter_Abstract->query(Object(Zend_Db_Table_Select), Array)
#3 /home/okarito/sd/groupement-dem/library/Zend/Db/Table/Abstract.php(1330): Zend_Db_Adapter_Pdo_Abstract->query(Object(Zend_Db_Table_Select))
#4 /home/okarito/sd/groupement-dem/library/Zend/Db/Table/Abstract.php(1158): Zend_Db_Table_Abstract->_fetch(Object(Zend_Db_Table_Select))
#5 /home/okarito/sd/groupement-dem/library/Kaimite/Db/AccesDonnees.php(244): Zend_Db_Table_Abstract->fetchAll(Object(Zend_Db_Table_Select))
#6 /home/okarito/sd/groupement-dem/app/modules/default/models/Reponses.php(18): Kaimite_Db_AccesDonnees->_infosDepuisSelect(Object(Zend_Db_Table_Select), 'Reponse')
#7 /home/okarito/sd/groupement-dem/app/modules/default/controllers/IndexController.php(170): Reponses->getReponsesFromSondage(NULL, false)
#8 /home/okarito/sd/groupement-dem/library/Zend/Controller/Action.php(503): IndexController->reponseAction()
#9 /home/okarito/sd/groupement-dem/library/Zend/Controller/Dispatcher/Standard.php(285): Zend_Controller_Action->dispatch('reponseAction')
#10 /home/okarito/sd/groupement-dem/library/Zend/Controller/Front.php(934): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#11 /home/okarito/sd/groupement-dem/www/index.php(114): Zend_Controller_Front->dispatch()
#12 {main}

Hors ligne

 

#2 21-06-2013 15:53:33

Théocrite
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 608
Site web

Re: Problème de création de sondage erreur DB

Bonjour,

Pour t'aider il nous faudra un peu plus de détail, du genre le code correspondant à l'erreur :

Code:

#6 /home/okarito/sd/groupement-dem/app/modules/default/models/Reponses.php(18): Kaimite_Db_AccesDonnees->_infosDepuisSelect(Object(Zend_Db_Table_Select), 'Reponse') 
#7 /home/okarito/sd/groupement-dem/app/modules/default/controllers/IndexController.php(170): Reponses->getReponsesFromSondage(NULL, false)

A priori il s'agit d'une requète sql dans laquelle aucune valeur n'est associée à un champ.

Hors ligne

 

#3 21-06-2013 16:11:00

debounette
Nouveau membre
Date d'inscription: 21-06-2013
Messages: 2

Re: Problème de création de sondage erreur DB

Bonjour

Merci de votre réponse vous trouverez ci dessous les codes demandés :

reponses.php

<?php

class Reponses extends Kaimite_Db_AccesDonnees {
   
    /**
     * Le nom de la table
     * @var string
     */
    protected $_name = 'reponse';

    public function getReponsesFromSondage($sid,$pourAdmin = true){
       
        $select = $this -> select() -> from($this -> _name, 'uid') ->where("actif = '1'")-> where ("`poubelle` = '0'") -> where("`id_question` = ? ", $sid);
        $select -> order ("reponse ASC");
        if ( !$pourAdmin ) {
            $select -> where ("`actif` = '1'");
        }
        return $this ->  _infosDepuisSelect ($select, "Reponse"); // LIGNE ERREUR 18
    }
   
    public function getReponses($son_id,$pourAdmin = false){
        $select = $this -> select() -> from("reponse", 'uid') ->where("actif = '1'")-> where ("`poubelle` = '0'") -> where("`id_question` = ? ", $son_id);
       
        if ( !$pourAdmin ) {
            $select -> where ("`actif` = '1'");
        }
        $select -> order ("reponse ASC");
        return $this ->  _infosDepuisSelect ($select, "Reponse");
       
    }
   
    public function deleteReponses($son_id){
        $where = $this -> getAdapter() -> quoteInto('id_question = ?', (int) $son_id);
                $this -> delete($where);
    }
}
?>


indexcontroller.php

je vous copie la fonction où se trouve l'erreur

public function reponseAction(){
        $sond = new Sondages();
        $sondage = $sond->getLastSondages();
        if(is_array($sondage) && count($sondage)==1){
            $sondage[0]->recupererInfosPourWeb();
            $this->view->sondage = $sondage[0]->infosWeb['texte'];
            $this->view->uid = $sondage[0]->infosWeb['uid'];
            $repon = new Reponses();
            $reponse = $repon->getReponsesFromSondage($sondage[0]->infosWeb['uid'],false);  // LIGNE ERREUR 170
           
            $this->view->reponsesSondage=array();
            if(is_array($reponse)){
                foreach($reponse as $rep){
                   
                    $rep->recupererInfosPourWeb();
                    //print_r($rep->infosWeb);
                    $this->view->reponsesSondage[$rep->infosWeb['uid']] = $rep->infosWeb['reponse'];
                }
            }else{
                $this->view->reponsesSondage = " ";
            }
        }else{
            $this->view->sondage = " ";
        }
       
        return;
    }

merci à vous.

Hors ligne

 

#4 21-06-2013 16:21:22

Théocrite
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 608
Site web

Re: Problème de création de sondage erreur DB

Quelle est la valeur de $sondage[0]->infosWeb['uid'] ? (sid dans le reste du code)

Essaye de faire un var_dump ou un Zend_Debug::dump de ton $sondage au pire.

Je verrais bien un problème de ce côté là : si $sondage[0]->infosWeb['uid'] est undifined, on peut considérer $sid comme null, donc lors du ->where("`id_question` = ? ", $sid), on va avoir sid == null donc une erreur dans l'attribution des paramètres dans le SQL, l'erreur est donc levée lors de l'exécution du SQL (je pense, mais il faudrait aussi le contenu de _infosDepuisSelect pour le garantir).

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