IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend_Db PHP Discussion :

SQLSTATE[21000]: Cardinality violation: 1241 Operand should contain 1 column(s)


Sujet :

Zend_Db PHP

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 94
    Points : 120
    Points
    120
    Par défaut SQLSTATE[21000]: Cardinality violation: 1241 Operand should contain 1 column(s)
    Bonjour,

    Je reviens avec un nouveau problème, j'ai essayé dans tous les sens mais impossible de trouver la solution.

    J'obtiens le message en sujet lorsque j'exécute ma requète:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $statement = 'SELECT `campaigns`.*, count(1) AS `calls`
    	FROM `campaigns`, `companies`, `establishments`
    	WHERE (
    		`campaigns`.`active` = 1
    		AND `establishments`.`company`=`companies`.`id`
    		AND `establishments`.`callback`<NOW()
    		AND `campaign`=`campaigns`.`id`
    	)
    	GROUP BY `campaigns`.`id`
    	ORDER BY `campaigns`.`last_update` ASC';
    $resultSet = $this->getDbTable()->fetchAll( $statement );
    Si je remplace le "`campaigns`.`active` = 1" par "`campaigns`.`active` = ?" et que j'ajoute un ", 1" dans mon fetchAll, j'ai comme erreur:
    'SQLSTATE[HY093]: Invalid parameter number: no parameters were bound
    Quelqu'un saurait-il ce qui se passe et aurait-il une astuce pour que je puisse faire passer cette requète ?

    Merci d'avance.

  2. #2
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    la méthode fetchAll ne s'utilise pas comme ça, tu dois utiliser "$this->getDbTable()->select()" et faire ça :
    http://julien-pauli.developpez.com/t...=Zend_Db#LIX-F

  3. #3
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Pour utiliser le fetchAll de ta façon , il te faut l'objet db

    quelque chose dans ce goût là

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
       $params = array(
     
                    'host' => 'localhost' ,
                    'username' => 'user' ,
                    'password' => 'password' ,
                    'dbname' => 'database'
            );
            try {
                $db = Zend_Db::factory('PDO_MYSQL', $params);
                $db->getConnection();
     
            } catch (Zend_Db_Adapter_Exception $e) {
                echo $e->getMessage();
            }
     
    $statement = 'SELECT `campaigns`.*, count(1) AS `calls`
    	FROM `campaigns`, `companies`, `establishments`
    	WHERE (
    		`campaigns`.`active` = ?
    		AND `establishments`.`company`=`companies`.`id`
    		AND `establishments`.`callback`<NOW()
    		AND `campaign`=`campaigns`.`id`
    	)
    	GROUP BY `campaigns`.`id`
    	ORDER BY `campaigns`.`last_update` ASC';
    $resultSet = $db->fetchAll($statement,1 );

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/05/2015, 16h24
  2. Réponses: 0
    Dernier message: 21/04/2011, 20h47
  3. #1241 - Operand should contain 1 column(s)
    Par Mister Paul dans le forum Requêtes
    Réponses: 5
    Dernier message: 12/11/2008, 15h59
  4. #1241 - Operand should contain 1 column(s)
    Par yanidan dans le forum Requêtes
    Réponses: 8
    Dernier message: 29/02/2008, 15h30
  5. pb requete, reponse=Operand should contain 1 column(s)
    Par akara dans le forum Requêtes
    Réponses: 4
    Dernier message: 05/06/2007, 21h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo