Echec:SQLSTATE[HY093]: Invalid parameter number: number of b

Résolu
Leodegard Messages postés 9 Statut Membre -  
 Leodegard -
Bonsoir Mes amis dans un site internet que j'ai créer récemment, dans le formulaire contact, si l'utilisateurs valides les variables l'erreur : Echec:SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens apparat et depuis deux semaines je ne trouve pas de solutions.

Prière de m'aider.

voici le lien du site : https://cresh-rdc.org/contact.php

6 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonjour

    Tu as une erreur dans ton code PHP...
    Le nombre de variables demandées dans ta requête SQL ne correspond pas au nombre de variables envoyées lors de son exécution..

    Pour pouvoir t'aider à trouver l'erreur, il faut que tu nous montres le code

    Pour poster ton code tu devras utiliser les balises de code
    https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

    .
    0
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Pourquoi avoir créé une nouvelle discussion sur le forum codes-source ?

    Bref...
    Tu as écrit
    $requete=$connexion->prepare(
    "INSERT INTO 'users'(email, message)
    VALUES('','expediteur','message')"
    );

    Tu veux insérer deux valeurs mets dans ton VALUES tu en as indiqué trois..
    Supprime
    '',


    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Il faut également retirer les côtes autour des valeurs que tu veux insérer
      $requete=$connexion->prepare(
      "INSERT INTO `users` (email, message)
      VALUES(expediteur,message)");
      0
  3. Leodegard Messages postés 9 Statut Membre
     
    L'erreur persiste toujours

    <?php
        
        <div class="cadre">
            <h2>ECRIVEZ-NOUS !</h2>
            <form action="message.php" method="POST">
                <label for="expediteur">Email :</label><br>
                <input type="email" name="expediteur" id="expediteur" title="votre email"><br>
                
                <label for="expediteur">Message :</label><br>
                <textarea id="message" name="message" title="Message"></textarea><br>
    
                <input type="submit" value="Envoyer"><br>
            </form>   
        </div>
    
    
        
        $serveur="91.350.107.164";
        $login="............";
        $pass="............";
    
        $email=$_POST['expediteur'];
        $message=$_POST['message'];
    
    try{
        $connexion = new PDO ("mysql:host=91.350.107.164 ;dbname=cresh9844254",$login, $pass);
        $connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        echo'<h3>Votre message est bien envoyé. Clique <a href="https://cresh-rdc.org"> ici</a></h3>';
        $requete=$connexion->prepare(
            "INSERT INTO 'users'(email, message)
            VALUES('expediteur','message')"
        );
    
    $requete->bindParam("email",$email);
    $requete->bindParam("message",$message);
    $requete->execute();
    }
    catch(PDOException $e) {echo 'Echec:' .$e->getMessage();
    
    }
    
    ?>
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      En même temps .. si tu ne lis pas correctement les réponses (il y en a deux !) que je te donne et que tu n'as pas réussi à copier/coller le code que je t'ai fourni .. c'est un peu normal ..
      0
    2. Leodegard Messages postés 9 Statut Membre
       
      Bonjour Jordane, j'ai coller le code mais l'erreur revienne toujours :

      $connexion = new PDO ("mysql:host=91.216.254.21 ;dbname=cresh",$login, $pass);
          $connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
          echo'<h3>Votre message est bien envoyé. Clique <a href="https://cresh-rdc.org"> ici</a></h3>';
          requete=$connexion->prepare(
          "INSERT INTO `users` (email, message)
          VALUES(expediteur,message)");
      0
      1. Leodegard Messages postés 9 Statut Membre > Leodegard Messages postés 9 Statut Membre
         
        Parse error : erreur de syntaxe, jeton inattendu "=" dans /htdocs/message.php à la ligne 4
        0
      2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > Leodegard Messages postés 9 Statut Membre
         
        Il manque un $
        0
  4. Leodegard Messages postés 9 Statut Membre
     
    La même erreur me revienne :

    <?php
        $serveur="";
        $login="";
        $pass="qsaoe";
    
        $email=$_POST['expediteur'];
        $message=$_POST['message'];
    
    try{
        $connexion = new PDO ("mysql:host=........... ;dbname=cresh",$login, $pass);
        $connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        echo'<h3>Votre message est bien envoyé. Clique <a href="https://cresh-rdc.org"> ici</a></h3>';
        $requete=$connexion->prepare(
            "INSERT INTO `users` (email, message)
            VALUES(expediteur,message)");
    
    $requete->bindParam('email',$email);
    $requete->bindParam('message',$message);
    $requete->execute();
    }
    catch(PDOException $e) {echo 'Echec:' .$e->getMessage();
    }
    ?>
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Tu as nommé tes variables, dans ta requete , expediteur et message
      et dans le bind .. tu as utilisé email et message ...
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Leodegard Messages postés 9 Statut Membre
     
    Merci infiniment j'ai reçu
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Si ça marche.. marque le sujet en RESOLU. merci.

      PS: je supprime les liens vers ta page .. ça ne sert à rien pour la résolution de ce souci et cela évitera qu'on pense que tu essais de faire de la pub pour ton site... :-)
      0
  7. Leodegard
     
    Sujet résolu. Merci infiniment
    0