Bonjour,
Je suis en train de développer une application web et j'ai un petit souci sur mon code php.
J'ai une méthode ajouter de ma classe Theme qui ajoute dans ma base de donnée un thème avec son ID (en auto increment) et son libellé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <?php class Theme { private $id_theme; private $libelle; private $bdd; public function __construct($libelle, Bdd $bdd){ $this->libelle = $libelle; $this->bdd = $bdd->getBdd(); } public function ajouter(){ $req = $this->bdd->prepare("INSERT INTO theme (LIBELLE) VALUES=(?)"); $req->bindParam(1, $this->libelle); $req->execute(); } }
Quand je teste la fonctionnalité ajouter d'un object Theme il ne m'insère rien dans la base de donnée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 require('../classes/Bdd.php'); require '../classes/Theme.php'; $bdd = new Bdd(); $theme = new Theme("Le corps humain",$bdd); $theme->ajouter();
(Pour le tester j’exécute ma page teste sur le serveur comme il n'y a pas de méthode main en php).
Résultat :
Alors le problème ne vient pas de ma connexion à la base de donnée ni ma classe Bdd car j'ai effectué un test avec un SELECT SQL et j'arrive à avoir les informations que je souhaite :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 class Theme { private $id_theme; private $libelle; private $bdd; public function __construct($libelle, Bdd $bdd){ $this->libelle = $libelle; $this->bdd = $bdd->getBdd(); } public function ajouter(){ $req = $this->bdd->prepare("INSERT INTO theme (LIBELLE) VALUES=(?)"); $req->bindParam(1, $this->libelle); $req->execute(); } public function testSelect(){ $test= $this->bdd->prepare("SELECT * FROM theme"); $test->execute(); var_dump($test->fetchAll()); } }
Le fichier test que j'execute sur le serveur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 require('../classes/Bdd.php'); require '../classes/Theme.php'; $bdd = new Bdd(); $theme = new Theme("Mathématiques",$bdd); $theme->testSelect();
Résultat :
Voila j'ai cherché sur le net mais je ne trouve pas un sujet sur mon problème. Votre aide est donc la bienvenue. Merci .
Partager