'SQLSTATE[HY093]: Invalid parameter number [Résolu/Fermé]

Signaler
-
 Romain -
Bonjour,

Je suis débutant en code et j'essaye de de recuperer les infos de mon formulaire de contact pour l'envoyer vers ma base de données mySQL (sous wampserver).



Seulement, au clic sur mon bouton "envoyer", j'ai les messages suivants qui s'affichent:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in C:\wamp64\www\Site\Contact.php on line 64

( ! ) PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp64\www\Site\Contact.php on line 64


J'ai regardé sur un tas de forum, mais je n'arrive pas à trouver mon erreur



Voici mon code:

<div class=Formulairecontact>
<form method="post"">
<input class="Prénom" type="text" name="prénom" id="prénom" placeholder="Prénom" required> <br><br>
<input type="text" name="nom" id="nom" placeholder="Nom" required><br><br>
<input type="number" name="tel" id="tel" placeholder="Tel" required><br><br>
<input type="email" name="email" id="email" placeholder="Email" required><br><br>
<div class="divmessage" align="center">
<textarea class="Message" type="text" name="message" id="message" placeholder="Ecrivez votre message" required></textarea> <br>
<input class="Envoyerformulaire" type="submit" name="envoyer" id="envoyer">
</div>
</form>
</div>


<?php


if(isset($_POST["envoyer"])){
extract($_POST);



if(!empty($prénom) && !empty($nom) && !empty($tel) && !empty($email) &&!empty($message)){


include "DataBase.php";
global $db;




$q=$db ->prepare("INSERT INTO messages (prénom,nom,email,tel,message) VALUES(:prénom,:nom,:email,:tel,:message)");
$q->execute([
"prénom"=>$prénom,
"nom"=>$nom,
"email"=>$email,
"tel"=>$tel,
"message"=>$message
]);
}
}
?>



Et le code de ma page DataBase.php
<?php

define("HOST","localhost");
define("DB_NAME", "Site projet info/cao");
define("USER","root");
define("PASS","");

try{
$db = new PDO("mysql:host=" . HOST. ";dbname=". DB_NAME, USER, PASS);
$db->setAttribute(PDO::ATTR_ERRMODE , PDO::ERRMODE_EXCEPTION);
echo "Connect > OK !";
} catch(PDOException $e){
echo $e;
}
?>



Et la structure de ma table est la suivante:
Nom : messages
colonnes:
1: Idmessage
2: prénom
3: nom
4: email
5: tel
6: message



Est ce que vous sauriez m'aider ?

Un grand merci d'avance !

Configuration: Windows / Chrome 71.0.3578.98

1 réponse

Messages postés
28938
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 juillet 2020
2 609
Bonjour
Commence par virer les accents dans tes noms de variable
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 61367 internautes nous ont dit merci ce mois-ci

Mon dieu, c'était ca !
J'aurai du y penser

un grand merci !