PHP connexion à une base de données + ajout de données
lionel-DIL
Messages postés
1222
Date d'inscription
Statut
Membre
Dernière intervention
-
ajp55 Messages postés 426 Date d'inscription Statut Membre Dernière intervention -
ajp55 Messages postés 426 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche à ajouter, en objet, des données (provenant d'un formulaire de contact) en base de données SQL.
Voici mon script de connexion :
Maintenant, dans la partie du script de la page de contact, je dois faire l'ajout (et là je bloque):
Je cherche à créer une class pour ajouter des données d'un formulaire, dans la base :
Je ne suis même pas sûr que ce soit bon.
Et après je sèche.
Je suis très débutant en objet ( pas en PHP, mais en objet oui). Je saurais le faire sans objet, mais là, j'ai envie de m'y mettre.
Un peu d'aide ?
Thanks.
Je cherche à ajouter, en objet, des données (provenant d'un formulaire de contact) en base de données SQL.
Voici mon script de connexion :
<?php class Bdd { private $bdd; function __construct() { try { //Connexion à la base $dns = 'mysql:host=localhost;dbname=base-test'; $utilisateur = 'root'; $motDePasse = 'root'; $connection = new PDO( $dns, $utilisateur, $motDePasse ); $connection->query("SET NAMES utf8"); } catch ( Exception $e ) { //si erreurs echo "Connection à MySQL impossible : ", $e->getMessage(); die(); } $this->bdd = $connection; } function getBdd() { return $this->bdd; //Return object } } ?>
Maintenant, dans la partie du script de la page de contact, je dois faire l'ajout (et là je bloque):
Je cherche à créer une class pour ajouter des données d'un formulaire, dans la base :
class MessageContact { private $bdd; private $message_contact; public function __construct($pBdd, $pMessage) { $this->bdd = $pBdd; $this->message_contact = $pMessage; } public function sendMessageToBase(){ $query = $this->bdd->prepare("INSERT INTO 'base-test'.'contact' ('email','nom_contact','prenom_contact','societe_contact','date','heure','telephone','message','adresse_ip') VALUES ('$email','$nom','$prenom','$societe','$date','$heure','$tel','$message','$ip') "); $query->execute(array($pCategoryId)); $data = $query->fetchAll(); return $data; } }
Je ne suis même pas sûr que ce soit bon.
Et après je sèche.
Je suis très débutant en objet ( pas en PHP, mais en objet oui). Je saurais le faire sans objet, mais là, j'ai envie de m'y mettre.
Un peu d'aide ?
Thanks.
A voir également:
- PHP connexion à une base de données + ajout de données
- Gmail connexion - Guide
- Supprimer les données de navigation - Guide
- Trier des données excel - Guide
- Base de registre - Guide
- Reinstaller windows sans perte de données - Guide
4 réponses
public function sendMessageToBase(){ $query = $this->bdd->prepare("INSERT INTO 'base-test'.'contact' (email,nom_contact,prenom_contact,societe_contact,date,heure,telephone,message','adresse_ip') VALUES (:email,:nom,:prenom,:societe,:date,:heure,:tel,:message,:ip) "); $query->execute(array('email' =>$email,'nom'=>$nom,'prenom'=>$prenom,'societe'=>$society,'date'=>$date,'heure'=>$heur,'tel'=>$tel,'message'=>$message,'ip'=>$ip)); }
l'idée c'est de voir comment tu va remplir ces variable $nom, $ip, $date etc..
avant de les passe dans le tableau. Tu n'as pas besoin d'un fetchAll quand tu fai simplement un insert.
Ok, je comprends un peu.
Mais après, je dois appeler la fonction créée ?
Je ne lui passe pas de paramètres ?
Avant de poser une question, assurez-vous que la réponse ne soit pas déjà sur google.fr
Mais après, je dois appeler la fonction créée ?
public function sendMessageToBase(){ $query = $this->bdd->prepare("INSERT INTO 'base-test'.'contact' (email,nom_contact,prenom_contact,societe_contact,date,heure,telephone,message,adresse_ip) VALUES (:email,:nom,:prenom,:societe,:date,:heure,:tel,:message,:ip) "); $query->execute(array('email' =>$email,'nom'=>$nom,'prenom'=>$prenom,'societe'=>$societe,'date'=>$date,'heure'=>$heure,'tel'=>$tel,'message'=>$message,'ip'=>$ip)); } $contactmessage = new sendMessageToBase();
Je ne lui passe pas de paramètres ?
Avant de poser une question, assurez-vous que la réponse ne soit pas déjà sur google.fr
Salut !
Mmh ta fonction me parrait un peu bizarre !
Mais un bon point ! Enfin quelqu'un qui utilise PDO Hihi
Sinon,
En général, ce genre de fonction est appelé un manager (il permet de faire des opérations dans la BDD dans une architecture Models / Views / Controllers )
Donc moi à ta place je ferais :
A voir si c'est juste !
Mmh ta fonction me parrait un peu bizarre !
Mais un bon point ! Enfin quelqu'un qui utilise PDO Hihi
Sinon,
En général, ce genre de fonction est appelé un manager (il permet de faire des opérations dans la BDD dans une architecture Models / Views / Controllers )
Donc moi à ta place je ferais :
public class MessageContact{ private $_bd; public function __construct($bd){ $this->_bd = $bd; } // Passe lui direct ton $_POST en faisant gaffe à bien mettre les bons nom ! public function SendMessageToBase($tabInfos){ $query = $this->bdd->prepare("INSERT INTO 'base-test'.'contact' (email,nom_contact,prenom_contact,societe_contact,date,heure,telephone,message,adresse_ip) VALUES (:email,:nom,:prenom,:societe,:date,:heure,:tel,:message,:ip) "); $query->execute($tabInfos); } }
A voir si c'est juste !