'SQLSTATE[HY093]: Invalid parameter number

Résolu/Fermé
Romain - 19 janv. 2019 à 12:04
 Romain - 19 janv. 2019 à 17:02
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

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
19 janv. 2019 à 14:33
Bonjour
Commence par virer les accents dans tes noms de variable
1
Mon dieu, c'était ca !
J'aurai du y penser

un grand merci !
0