Insertion en PHP/MYSQL
Résolu
aliounemane2
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
aliounemane2 Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
aliounemane2 Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
Bonjour j'ai un problème pour insérer dans une base de données
Aprés avoir remplit tous les champs de texte et validé le formulaire aucune erreur ne s'affiche mais
lorsque je vérifie dans ma base de données aucune insertion n'a été prise en compte
HELP ME PLEASE ....
Voici l'interface du champ de texte
Voici la classe Connexion
Enfin Voici la classe qui permet de faire le traitement d'insertion
HELP Me ...
Aprés avoir remplit tous les champs de texte et validé le formulaire aucune erreur ne s'affiche mais
lorsque je vérifie dans ma base de données aucune insertion n'a été prise en compte
HELP ME PLEASE ....
Voici l'interface du champ de texte
<!DOCTYPE html> <html> <head> <title> Test </title> <meta charset="utf-8"/> </head> <body> <form method="POST" action="ajout.php" class=""> <div class="etape_1"> <input type="hidden" name="id_finder" value="uniqid()" /> <label> Nom </label> <input type="text" autocomplete="off" name="nom_finder" placeholder="Nom" required /><br/> <label> Prenom </label> <input type="text" name="prenom_finder" placeholder="Prénom" /><br/> <label> Adresse </label> <input type="text" name="addr_finder" placeholder="Où habitez-vous ?" /><br/> <label> Téléphone </label> <input type="text" autocomplete="off" name="tel_finder" placeholder="Numero de tél." required/><br/> <label> mail </label> <input type="mail" autocomplete="off" name="mail_finder" placeholder="Email" /><br/> <input type="submit" value="Envoyer" name="envoyer"/> </div> </form> </body> </html>
Voici la classe Connexion
<?php
class Connexion{
public static function getMysqlConnexion(){
static $connexion;
try{
/* Connexion au Serveur */
$connexion = new PDO('mysql:host=localhost;dbname=activfinddb','root','');
// On émet une alerte a chaque fois qu'une requette a échoué
$connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
return $connexion;
}catch(Exception $e){
die(" Impossible d'accéder à la base de donnée ".$e->getMessage());
}
}
}
?>
Enfin Voici la classe qui permet de faire le traitement d'insertion
<?php
getMysqlConnexion();
class Finder{
private $id_finder;
private $nom_finder;
private $prenom_finder;
private $tel_finder;
private $addr_finder;
private $mail_finder;
public function addFinder(){
if (isset($_POST['envoyer'])) {
# code...
$recuperation = array(
'id_finder'=>$id_finder,
'nom_finder'=>$nom_finder,
'prenom_finder'=>$prenom_finder,
'tel_finder'=>$tel_finder,
'addr_finder'=>$addr_finder,
'mail_finder'=>$mail_finder
);
$insertion = $connexion->prepare('INSERT INTO finder(id_finder,nom_finder,prenom_finder,tel_finder,addr_finder,mail_finder) VALUES
(:id_finder,:nom_finder,:prenom_finder,:tel_finder,:addr_finder,:mail_finder)');
$insertion->exec($recuperation);
echo " Ajout effectué avec Succés ";
}
}
}
?>
HELP Me ...
1 réponse
-
Salut,
Tu devrais pourtant avoir une erreur php "Call to undefined method" car ta variable $insertion qui correspond à une instance de la classe PSOStatement ne possède pas la méthode exec().
Tu dois utiliser la méthode execute() pour exécuter une requête préparée :$insertion = $connexion->prepare('...'); $insertion->execute($recuperation);
Bonne journée-
-
-
voici le message d'erreur qui est affiché
Fatal error: Call to undefined function getMysqlConnexion() in C:\wamp\www\ACTVFND\traitement\ajout.php on line 3
Call Stack
# Time Memory Function Location
1 0.0005 250928 {main}( ) ..\ajout.php:0
et voici le code correspondant
<?php getMysqlConnexion(); class Finder{ private $id_finder; private $nom_finder; private $prenom_finder; private $tel_finder; private $addr_finder; private $mail_finder; public function addFinder(){ $recuperation = array( 'id_finder'=>$id_finder, 'nom_finder'=>$nom_finder, 'prenom_finder'=>$prenom_finder, 'tel_finder'=>$tel_finder, 'addr_finder'=>$addr_finder, 'mail_finder'=>$mail_finder ); $insertion = $connexion->prepare('INSERT INTO finder(id_finder,nom_finder,prenom_finder,tel_finder,addr_finder,mail_finder) VALUES (:id_finder,:nom_finder,:prenom_finder,:tel_finder,:addr_finder,:mail_finder)'); $insertion->execution($recuperation); echo " Ajout effectué avec Succés "; } } ?> -
Tu ne peux pas appeler la méthode getMysqlConnexion() comme ceci, tu dois l'appeler via la classe Connexion.
Cette connexion doit également être récupérer dans ta méthode qui ajoute les données, soit :<?php class Finder{ private $id_finder; private $nom_finder; private $prenom_finder; private $tel_finder; private $addr_finder; private $mail_finder; public function addFinder(){ if (isset($_POST['envoyer'])) { # code... // on récupère la connexion à la bdd $connexion = Connexion::getMysqlConnexion(); $recuperation = array( 'id_finder'=>$id_finder, 'nom_finder'=>$nom_finder, 'prenom_finder'=>$prenom_finder, 'tel_finder'=>$tel_finder, 'addr_finder'=>$addr_finder, 'mail_finder'=>$mail_finder ); $insertion = $connexion->prepare('INSERT INTO finder(id_finder,nom_finder,prenom_finder,tel_finder,addr_finder,mail_finder) VALUES (:id_finder,:nom_finder,:prenom_finder,:tel_finder,:addr_finder,:mail_finder)'); $insertion->execute($recuperation); echo " Ajout effectué avec Succés "; } } } -
-