Ajouter des données dans une base de données avec un formulaire
Résolu
hharchi9
Messages postés
567
Date d'inscription
Statut
Membre
Dernière intervention
-
hharchi9 Messages postés 567 Date d'inscription Statut Membre Dernière intervention -
hharchi9 Messages postés 567 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je tente d'ajouter des données à ma base de données mais mon code, même s'il ne m'affiche aucune erreur n'ajoute rien sur la base...
Voici le code de traitement de la page :
Voilà, j'espère avoir été suffisamment clair.
Merci à tous de m'avoir lu et merci d'avance de vos réponses,
hharchi9.
Je tente d'ajouter des données à ma base de données mais mon code, même s'il ne m'affiche aucune erreur n'ajoute rien sur la base...
Voici le code de traitement de la page :
<?php
//récupération des données du formulaire
$titre= $_POST['titre'];
$sortie= $_POST['sortie'];
$realisateur= $_POST['realisateur'];
$acteurs= $_POST['acteurs'];
$duree= $_POST['duree'];
$nationalite= $_POST['nationalite'];
$video= $_POST['video'];
$synopsis= $_POST['synopsis'];
$critique= $_POST['critique'];
$pouces= $_POST['pouces'];
$note= $_POST['note'];
$genre= $_POST['genre'];
$lien= $_POST['lien'];
$affiche= $_POST['affiche'];
echo "Connection à la base de données... Patientez ..."; ?><br/><br/><?php
//code pour ajouter le film à la base de données
try
{
// On se connecte à MySQL
$bdd = new PDO('mysql:host=localhost;dbname=le cinephile', 'root', '');
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
// Si tout va bien, on peut continuer :
$bdd->exec("INSERT INTO films VALUES('$titre', '$sortie', '$realisateur', '$acteurs', '$duree', '$nationalite', '$video', '$synopsis', '$critique', '$pouces', '$note', '$genre', '$lien', '$affiche'");
echo "Le film a été ajouté, redirection en cours"; ?>
Voilà, j'espère avoir été suffisamment clair.
Merci à tous de m'avoir lu et merci d'avance de vos réponses,
hharchi9.
A voir également:
- Ajouter des données dans une base de données avec un formulaire
- Fuite données maif - Guide
- Whatsapp formulaire opposition - Guide
- Trier des données excel - Guide
- Supprimer les données de navigation - Guide
- Sauvegarde des données - Guide
1 réponse
Salut,
Tu dois avoir un problème sur ta requête. Telle qu'elle est construite, tu ne doit pas avoir entiers ou des décimaux or je ne pense pas que ce soit le cas.. Si tu as des entiers ou des décimaux tu dois supprimer les quotes dans la requete pour ces variables.
Pour vérifier ta requete passe bien tu peux ajouter ça après :
Par contre tu devrais sécuriser tes variables parce que la tu as de grosses failles de sécurité (injection sql)
Tu dois avoir un problème sur ta requête. Telle qu'elle est construite, tu ne doit pas avoir entiers ou des décimaux or je ne pense pas que ce soit le cas.. Si tu as des entiers ou des décimaux tu dois supprimer les quotes dans la requete pour ces variables.
Pour vérifier ta requete passe bien tu peux ajouter ça après :
if($bdd === FALSE) { die('Erreur dans la requête'); } else { echo "Requête OK"; }
Par contre tu devrais sécuriser tes variables parce que la tu as de grosses failles de sécurité (injection sql)
Effectivement, l'idéal serait d'utiliser une requête préparée avec des paramètres pour éviter les injections sql.
J'ai tenter de suivre vos conseils concernant une requête préparée mais j'ai un souci avec la fonction exec() voici le code :
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in C:\wamp\www\cinephile\php\admin.php on line 51
PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\cinephile\php\admin.php on line 51
voici ce que contient la ligne 51 : ':lien' => $lien ));
Dans la requête -> :titre, :sortie, etc...
Dans le tableau -> :Titre, :Sortie
La casse est importante, le nom de tes marqueurs doivent être identiques.