Echec:SQLSTATE[HY093]: Invalid parameter number: number...

Leodegard Messages postés 7 Date d'inscription jeudi 10 février 2022 Statut Membre Dernière intervention 14 février 2022 - Modifié le 11 févr. 2022 à 19:56
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 11 mars 2022 à 23:59
Salut Famille,
ici nous avons deux éléments : Form et Traitement. malheureusement les éléments n'arrivent pas dans la base des données une erreur apparait : Echec:SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens.


<?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="80.215.107.320";
    $login=".............";
    $pass="............";

    $email=$_POST['expediteur'];
    $message=$_POST['message'];

try{
    $connexion = new PDO ("mysql:host=91.216.107.164 ;dbname=cresh22",$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();

}

?>
A voir également:

1 réponse

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
11 mars 2022 à 23:59
Le problème vient du fait que les identifiants de paramètre dans Prepare ne sont pas identique aux bind ....

    $requete=$connexion->prepare("INSERT INTO 'users'(email, message) VALUES('','%exp','%msg');");
    $requete->bindParam("%exp", $email);
    $requete->bindParam("%msg", $message);

0