Menu

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

- - Dernière réponse :  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
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
Messages postés
24625
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 février 2019
1857
1
Merci
Bonjour
Commence par virer les accents dans tes noms de variable

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 56682 internautes nous ont dit merci ce mois-ci

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

un grand merci !
Commenter la réponse de jordane45