Formulaire dans bdd
Résolu
Busima
Messages postés
69
Statut
Membre
-
Busima Messages postés 69 Statut Membre -
Busima Messages postés 69 Statut Membre -
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
69
Statut
Membre
1
Ok merci Jordane45.