Erreur : SQLSTATE[23000]: Integrity constraint violation: 1048 C

Résolu/Fermé
gintoxic Messages postés 524 Date d'inscription mardi 31 juillet 2007 Statut Membre Dernière intervention 7 avril 2016 - 15 sept. 2013 à 18:36
gintoxic Messages postés 524 Date d'inscription mardi 31 juillet 2007 Statut Membre Dernière intervention 7 avril 2016 - 16 sept. 2013 à 00:06
bonjour, je cherche partout une réponse à ma question sans trouver.
je m'adresse donc à vous en espérant que vous pourrez m'aider

je fais un formulaire d'inscription et j'utilise 2 pages pour cela (index.php et form.php)
sur l'index, je réupere les commentaires et sur form.php je les insere via le formulaire et une requete SQL
néanmoins un erreur susiste :
erreur : SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'pseudo' cannot be null
voici mes codes
form.php :
<fieldset>
<legend>Poster un commentaire</legend>
<form action="index.php" name="" id="" method="post">
Pseudo : <input type="text" name="pseudo" value="<?php echo $_SESSION['pseudo'] ?>" /><br />
Email : <input type="text" name="email" value="" /><br />
<textarea rows="10" cols="30"></textarea><br />
<input type="hidden" name="texte_id" />
<input type="submit" value="soumettre" name="valid" />
</form>
</fieldset>
<?php
$id=$_GET['id'];
include_once('../conf/connexion_bdd.php');
try{
$insert = $bdd->prepare('INSERT INTO commentaire(pseudo, email, message, date_enreg) VALUES(:pseudo, :email, :message, :date_enreg)')
or exit(print_r($insert>errorInfo())); // on prépare la requete SQL afin d'envoyer le message / pseudo. Si la requete échoue, on affiche l'erreur
$insert->execute(array(':pseudo'=>$_POST[':pseudo'], ':email'=>$_POST['email'],':message'=>$_POST['message'], ':date_enreg'=>time())); // on éxécute la requete
}
catch(PDOException $e){
die('erreur : '.$e->getMessage());
}
header('Location:index.php');

?>
ce fichier est dans un dossier "scripts_php" qui est à la racine du site

index.php
if($_SESSION['pseudo']){
include_once('scripts_php/form_comm.php');
}
else{
echo 'Commentaires (connexion obligatoire)';
}
$id=$_GET['id'];
require_once('conf/connexion_bdd.php');
$aff = $bdd->query('SELECT * FROM commentaire WHERE id=:id');
while ($select=$aff->fetch()) {
echo '<fleldset><legend>'.$select['pseudo'].'</legend>' .$select['date_enreg'].'</fieldset><br />';
echo $select['message'];
}
$aff->closeCursor();

fichier index du site, donc à la racine du site

merci pour votre aide par avance

1 réponse

fromagedebikette Messages postés 857 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 31 octobre 2016 189
Modifié par fromagedebikette le 15/09/2013 à 22:05
remplace ce morceau :
(array(':pseudo'=>$_POST[':pseudo'],
par
(array('pseudo'=>$_POST['pseudo'],

dans le fichier form.php

il y a : en trop

"Waouh, on aurait dit une scène de call of duty !!"
Agence tous risques
3
gintoxic Messages postés 524 Date d'inscription mardi 31 juillet 2007 Statut Membre Dernière intervention 7 avril 2016 10
16 sept. 2013 à 00:06
mreci j'avais pas fait gaffe :)
0