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   -
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


<!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:

1 réponse

Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
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
0
aliounemane2 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
Oui c'est vrai
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()
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Peux tu copier le message d'erreur complet ainsi que le code source correspondant ?
Es-tu sur que la classe Finder est bien inclue dans ton script ?
0
aliounemane2 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
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 ";
		
		}
	
	}

?>
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
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 ";
		}
	}
}
0
aliounemane2 Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup pour l'information
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...
0