Formulaire dans bdd
Résolu
Busima
Messages postés
53
Date d'inscription
Statut
Membre
Dernière intervention
-
Busima Messages postés 53 Date d'inscription Statut Membre Dernière intervention -
Busima Messages postés 53 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'ai un soucis avec mon code que je ne scinde pas d'abord:
Voici le message d'erreur: "Erreur !SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1Les datas : Array ( [:nom2] => Ira [:email2] => ira@gmail.com [:contact2] => 09675432 [:sujet2] => Essai page contact [:message2] => Bonjour, juste un salut! ) "
<?php REQUIRE_ONCE('config_bd_etopaf.php');?> <?php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); if(isset($_POST['envoyer'])) { $nom=$_POST['nom']; $email=$_POST['email']; $contact=$_POST['contact']; $sujet=$_POST['sujet']; $message=$_POST['message']; echo '<h2><u>INFORMATIONS SAISIES</u></h2> </br>'; echo 'Votre nom:'.$nom.' </br> Email:'.$email.' </br> Contacts:'.$contact.'</br>Sujet: '.$sujet.'</br> Message: '.$message.'</br></br> <form method="POST" action="contact_trait.php" /> <input type="hidden" name="nom2" value="'.$nom.'" /> <input type="hidden" name="email2" value="'.$email.'" /> <input type="hidden" name="contact2" value="'.$contact.'" /> <input type="hidden" name="sujet2" value="'.$sujet.'" /> <input type="hidden" name="message2" value="'.$message.'" /> <input type="submit" name="annuler" value="Annuler" /> <input type="submit" name="enregistrer" value="Enregistrer" /> </form>'; } ?> <?php if(isset($_POST['enregistrer'])) { $nom2=isset($_POST['nom2']) ? $_POST['nom2'] : ''; $email2=isset($_POST['email2']) ? $_POST['email2'] : ''; $contact2=isset($_POST['contact2']) ? $_POST['contact2'] : ''; $sujet2=isset($_POST['sujet2']) ? $_POST['sujet2'] : ''; $message2=isset($_POST['message2'])? $_POST['message2'] :''; //préparation de la requête et des variables $req = "INSERT INTO Clients(nom, email, contact, sujet, message) VALUES (:nom2, :email2, :contact2 :sujet2, :message2)"; $datas = array( ':nom2'=>$nom2, ':email2'=>$email2, ':contact2'=>$contact2, ':sujet2'=>$sujet2, ':message2'=>$message2); //Execution de la requete try { $requete = $bdd->prepare($req); $requete->execute($datas); } catch (Exception $e) { // en cas d'erreur : echo "Erreur !" .$e->getMessage(); echo "Les datas : "; print_r($datas); } //$req->execute($param) or die (print_r($req->errorInfo())); $requete->closeCursor(); } ?>
Voici le message d'erreur: "Erreur !SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1Les datas : Array ( [:nom2] => Ira [:email2] => ira@gmail.com [:contact2] => 09675432 [:sujet2] => Essai page contact [:message2] => Bonjour, juste un salut! ) "
1 réponse
Bonjour,
Le message est pourtant clair...
La liste des variables dans la requête
Ne contient pas le même nom que les variables dans $datas
Si tu regardes bien ta requête... tu devrais voir qu'il manque un petit truc....(si si.. regarde bien... en plein milieu... )
ici :
Je zoom encore un peu...
là.. à la place du X :-)
Le message est pourtant clair...
La liste des variables dans la requête
(:nom2, :email2, :contact2 :sujet2, :message2)
Ne contient pas le même nom que les variables dans $datas
( ':nom2'=>$nom2, ':email2'=>$email2, ':contact2'=>$contact2, ':sujet2'=>$sujet2, ':message2'=>$message2);
Si tu regardes bien ta requête... tu devrais voir qu'il manque un petit truc....(si si.. regarde bien... en plein milieu... )
ici :
:contact2 :sujet2
Je zoom encore un peu...
act2 :suj
là.. à la place du X :-)
act2X:suj
Busima
Messages postés
53
Date d'inscription
Statut
Membre
Dernière intervention
1
Ok merci Jordane45.