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 :

erreur invalid parameter number


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    513
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 513
    Par défaut erreur invalid parameter number
    Bonsoir

    voici la requete qui me pose problème quand je l'exécute dans myadmin ça fonctionne (bien sûr avec des valeurs)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    				$requete = "INSERT INTO paiements
    					(id_saison, id_adherent, mois, id_order, id_echeance, carte, state)
    					VALUES (:id_saison, :id_adherent, :mois, :id_order, :id_echeance, :carte, :state)
    					ON DUPLICATE KEY UPDATE state =:state ";    //id_order et id_echeance clef unique
     
    				$retours = $liaison->prepare($requete);
    				$retours->bindParam(':id_saison', $id_saison, PDO::PARAM_INT);
    				$retours->bindParam(':id_adherent', $id_adherent, PDO::PARAM_INT);
    				$retours->bindParam(':mois', $mois);
    				$retours->bindParam(':id_order', $id_order);
    				$retours->bindParam(':carte', $carte);
    				$retours->bindParam(':id_echeance', $id_echeance);
    				$retours->bindParam(':state', $state);
    si non j'ai une erreur
    erreur : PDOException: SQLSTATE[HY093]: Invalid parameter number in /home/michel/MesFichiersWordPress/adherent/notification_paiement_test.php:318
    je ne vois pas l'erreur

  2. #2
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Bonjour. Il te faut mettre 2 fois "state" à la fin, car tu as un "on duplicate key update" qui appelle une seconde fois ":state".
    Comme suggère le message d'erreur, il te faut autant de paramètres réels que de paramètes abstraits (:truc) dans la requête préparée.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    513
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 513
    Par défaut
    Bonjour merci pour vos réponses.

    @toufik83:
    si il y a une erreur lorsque la clef unique est trouvée

    @Dendrite:
    Oui mais en mettant 2fois :state j'obtenais une erreur 2031
    il faut mettre de nom de paramètre différent :state1 et :state2

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

Discussions similaires

  1. [MySQL] erreur Invalid parameter number: mixed named and positional parameters
    Par rvm31 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 10/11/2015, 10h56
  2. Réponses: 2
    Dernier message: 30/05/2015, 19h47
  3. [PDO] erreur "Invalid parameter number" sur requête toute bête
    Par laurentSc dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/02/2015, 21h54
  4. [PDO] ERREUR PDO : Invalid parameter number
    Par laurentSc dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 15/12/2013, 19h57
  5. [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

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