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

PHP & Base de données Discussion :

Number of bound variables does not match number of tokens [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 166
    Points : 81
    Points
    81
    Par défaut Number of bound variables does not match number of tokens
    Bonjour,

    J'ai le code suivant qui me permet de mettre à jour un élément (graphique) :
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    $rqt = $db->prepare('REPLACE INTO elements VALUES (:id,:x,:y,:long,:larg,:rayon,:angle,:positionnom);');
     
    		if (empty($this->id)) // Nouvel objet, sinon objet déjà existant
    			$rqt->bindValue(':id', null, PDO::PARAM_NULL);
     
    		$rqt->bindValue(':x',$x);
    		$rqt->bindValue(':y',$y);
     
    		// Si vide, on remplace par la valeur par défaut
    		if (empty($long))
    			$rqt->bindValue(':long', null, PDO::PARAM_NULL);
    		else
    			$rqt->bindValue(':long',$long, PDO::PARAM_INT);
     
    		if (empty($larg))
    			$rqt->bindValue(':larg', null, PDO::PARAM_NULL);
    		else
    			$rqt->bindValue(':larg',$larg, PDO::PARAM_INT);
     
    		if (empty($rayon))
    			$rqt->bindValue(':rayon', null, PDO::PARAM_NULL);
    		else
    			$rqt->bindValue(':rayon',$rayon, PDO::PARAM_INT);
     
    		if (empty($angle))
    			$rqt->bindValue(':angle', null, PDO::PARAM_NULL);
    		else
    			$rqt->bindValue(':angle',$angle, PDO::PARAM_INT);
     
    		// Si la position du texte n'est pas définie, la position par défaut est "up"
    		if (empty($this->position_nom))
    			$rqt->bindValue(':positionnom',"up", PDO::PARAM_STR);
    		else
    			$rqt->bindValue(':positionnom',$position_nom, PDO::PARAM_STR);
     
    		$rqt->execute();
    Cependant cela ne fonctionne pas, j'obient le message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <b>Warning</b>:  PDOStatement::execute() [<a href='function.PDOStatement-execute'>function.PDOStatement-execute</a>]: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in <b>monfichier.php</b> on line <b>84</b><br />
    (la ligne 84 étant celle-ci : "$rqt->execute();")

    Pourquoi ai-je cette erreur ? Comment la résoudre ?

    Et aussi est-ce que je m'y prend bien pour exécuter la requête (j'ai commencé le PDO hier )

    Merci.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (empty($this->id)) // Nouvel objet, sinon objet déjà existant
    	$rqt->bindValue(':id', null, PDO::PARAM_NULL);
    A priori, on serait dans le cas "else" donc, sans, le paramètre :id n'est pas défini. Ce qui expliquerait l'erreur.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 166
    Points : 81
    Points
    81
    Par défaut
    Effectivement c'était ça

    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/11/2014, 16h43
  2. [PDO] Erreur execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables
    Par Aaymeric91 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 30/09/2013, 17h27
  3. Réponses: 6
    Dernier message: 01/07/2011, 17h06
  4. Number of records does not match index
    Par sniperpro dans le forum Paradox
    Réponses: 10
    Dernier message: 08/12/2010, 15h28
  5. Réponses: 1
    Dernier message: 10/05/2006, 12h11

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