Enregistrer les donnees dans la base de donnees via formulaire
QBASIC
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
bonjour,j,essaye d'inserer les donnees dans la table de ma base de donnees apartir d'un formulaire mais rien ne s'enregistre dans la table alors que j'ai connecte ma base de donnees par PDO et je fait une requette prepare dont voici le code
les resultats donnent que les values et non les informations du formulaire par $_POST, s'il vous plait aide-moi
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
.
// Connexion à la base de données try { $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=isp', 'root', '', $pdo_options); $prenom= $_POST['preno']; $nom= $_POST['nom']; $postnom= $_POST['post']; $pseudo= $_POST['pseud']; $email= $_POST['email']; $mot_de_passe= $_POST['pawd1']; $sexe= $_POST['sex']; // Insertion du candidat à l'aide d'une requête préparée $req = $bdd ->prepare('INSERT INTO enregistre (nom,postnom,Prenom,Sexe,pseudo,email,mot_de_passe,date_naiss) VALUES ("nom","postnom","Prenom","Sexe","pseudo","email","mot_de_passe","date_naiss")'); $req ->execute(array( $_POST['nom'], $_POST['post'], $_POST['preno'], $_POST['sex'], $_POST['pseud'], $_POST['email'], $_POST['pawd1'] )); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } ?>
les resultats donnent que les values et non les informations du formulaire par $_POST, s'il vous plait aide-moi
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
.
A voir également:
- Enregistrer les donnees dans la base de donnees via formulaire
- Fuite données maif - Guide
- Whatsapp formulaire opposition - Guide
- Supprimer les données de navigation - Guide
- Audacity enregistrer son pc - Guide
- Trier des données excel - Guide
1 réponse
Bonjour,
1 - .. tu récupères les variables dans ton code
Alors pourquoi réutiliser les variables $_POST .. directement dans ta requête ??
==>> Sachant qu'il faut vérifier avec ISSET que tes variables existent AVANT de les utiliser !
Tu peux faire de la façon suivante :
2 - Dans ta requête, il faut écrire les variables que tu "prepare" en y mettant des ":" devant.
3 - Dans ton exectue.. l'array ne précise pas sur quels champs faire le remplacement des variables....
4 - Le date_naissance ... ne fait pas partit des champs que tu récupères dans POST ??
5 - Places la connexion à ta BDD dans un fichier à part dont tu feras l'include lorsque tu en auras besoin
Voici à quoi pourrait (devrait) ressembler le code complet modifié :
Cordialement,
Jordane
1 - .. tu récupères les variables dans ton code
$prenom= $_POST['preno']; $nom= $_POST['nom']; $postnom= $_POST['post']; $pseudo= $_POST['pseud']; $email= $_POST['email']; $mot_de_passe= $_POST['pawd1']; $sexe= $_POST['sex'];
Alors pourquoi réutiliser les variables $_POST .. directement dans ta requête ??
==>> Sachant qu'il faut vérifier avec ISSET que tes variables existent AVANT de les utiliser !
Tu peux faire de la façon suivante :
$prenom= isset($_POST['preno'])?$_POST['preno']:'';
2 - Dans ta requête, il faut écrire les variables que tu "prepare" en y mettant des ":" devant.
$req = $bdd ->prepare('INSERT INTO enregistre (nom,postnom,Prenom,Sexe,pseudo,email,mot_de_passe,date_naiss) VALUES (":nom",":postnom",":Prenom",":Sexe",":pseudo","email",":mot_de_passe",":date_naiss")');
3 - Dans ton exectue.. l'array ne précise pas sur quels champs faire le remplacement des variables....
4 - Le date_naissance ... ne fait pas partit des champs que tu récupères dans POST ??
5 - Places la connexion à ta BDD dans un fichier à part dont tu feras l'include lorsque tu en auras besoin
// Fichier cnxBDD.php // Connexion à la base de données try{ $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=isp', 'root', '', $pdo_options); }catch(Exception $e){ die('Erreur de connexion a la BDD: '.$e->getMessage()); }
Voici à quoi pourrait (devrait) ressembler le code complet modifié :
<?php // Connexion à la base de données require_once "cnxBDD.php"; // récupération des variables POST: $prenom= isset($_POST['preno'])?$_POST['preno']:''; $nom= isset($_POST['nom'])?$_POST['nom']:''; $postnom= isset($_POST['post'])?$_POST['post']:''; $pseudo= isset($_POST['pseud'])?$_POST['pseud']:''; $email= isset($_POST['email'])?$_POST['email']:''; $mot_de_passe= isset($_POST['pawd1'])?$_POST['pawd1']:''; $sexe= isset($_POST['sex'])?$_POST['sex']:''; $date_naiss = isset($_POST['date_naiss'])?$_POST['date_naiss'] : NULL; // Requete : try{ //préparation de la requete $sql = 'INSERT INTO enregistre (nom,postnom,Prenom,Sexe,pseudo,email,mot_de_passe,date_naiss) VALUES (":nom",":postnom",":Prenom",":Sexe",":pseudo","email",":mot_de_passe",":date_naiss")'; $params = array( ":nom"=>$nom ,":postnom"=>$postnom ,":Prenom"=>$prenom ,":Sexe"=>$sexe ,":pseudo"=>$pseudo ,":email"=>$email ,":mot_de_passe"=>$mot_de_passe ,":date_naiss"=>$date_naiss ); //execution de la requete $req = $bdd ->prepare($sql); $req ->execute($params); }catch(Exception $e){ echo "<br>-------------------<br> ERREUR ! <br>"; print_r($params); die('<br>Requete Erreur !: '.$e->getMessage()); } ?>
Cordialement,
Jordane