Insertion en PHP/MYSQL
Résolu
aliounemane2
Messages postés
35
Statut
Membre
-
aliounemane2 Messages postés 35 Statut Membre -
aliounemane2 Messages postés 35 Statut Membre -
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 ...
A voir également:
- Insertion en PHP/MYSQL
- Touche insertion clavier - Guide
- Insertion sommaire word - Guide
- Insertion filigrane word - Guide
- Insertion liste déroulante excel - Guide
- Insertion video powerpoint - Guide
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 :
Bonne journée
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
mais même si je le change cela me renvoie un nouvel erreur en me disant qu'il y'a un problème d'instanciation dans la classe Finder tout au début getMysqlConnexion()
Es-tu sur que la classe Finder est bien inclue dans ton script ?
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 "; } } ?>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 "; } } }mais j'ai essayé le code que vous m'avez donné mais
cela n'affiche pas le message " Ajout effectué avec Succés"
et cela n'affiche aucune érreur
mais cela je vérifie dans la base de données il y'a aucun ajout qui a été faite...