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

Résolu
Leodegard Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
 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
A voir également:

6 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
Leodegard Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
Leodegard Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
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
Leodegard Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   > Leodegard Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Parse error : erreur de syntaxe, jeton inattendu "=" dans /htdocs/message.php à la ligne 4
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > Leodegard Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Il manque un $
0
Leodegard Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Tu as nommé tes variables, dans ta requete , expediteur et message
et dans le bind .. tu as utilisé email et message ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Leodegard Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Merci infiniment j'ai reçu
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
Leodegard
 
Sujet résolu. Merci infiniment
0