Salut les amis , j'arrive pas à insérer plusieurs entrés dans la table 'agenda' seul la première insertion passe , si je veut insérer une nouvelle fois ça passe pas alors que je pense qu'il n'y a pas d’erreur sur mon code.
Première chose, active l'affichage des erreurs PHP et PDO.
MaridiooHack a écrit:
ça passe pas
Cela ne veut pas dire grand chose ... une fois les erreurs activées y en a-t-il d'affichées ? Si oui lesquelles exactement, si non, quel est le résultat obtenu ?
Et prépares ta requête pour éviter les injections SQL et tout problème de quotes.
Il y en a notamment une (') après $jour mais pas avant ... Pour passer inaperçu, à moins d'un if pas satisfait, les erreurs PDO/SQL ne sont de toute évidence pas activées.
On évitera aussi '' en valeur d'un entier (qu'il soit auto-incrémenté ou non), avec un sql_mode strict, ça ne passera pas. Carrément omettre la colonne sinon utiliser NULL ou DEFAULT.
après header on met un exit;
le code est mal indenté
quand on fait un echo on met un htmlspecialchars pour les XSS
Merci les amis j'ai utilisé les requête préparé et ça marche..
...
if(isset($_POST['submit']))
{
$jour=$_POST['jour'];
$mois=$_POST['mois'];
$titre_agenda=$_POST['titre_agenda'];
if($jour && $mois && $titre_agenda)
{
$pdoStat=$db->prepare('INSERT INTO agenda VALUES(NULL,:jour,:mois,:titre_agenda)');
$pdoStat->bindValue(':jour', $_POST['jour'], PDO::PARAM_INT);
$pdoStat->bindValue(':mois', $_POST['mois'], PDO::PARAM_STR);
$pdoStat->bindValue(':titre_agenda', $_POST['titre_agenda'], PDO::PARAM_STR);
$pdoStat->execute();
$suc="Agenda enregistré avec succes";
}else{
$err="Veuillez saisir tous les champs";
}
}
[PHP-MySQL] Erreur d'insertion
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli