Bonjour,
Etant grand débutant en PHP, je me suis fixé l'exercice de créer un espace membre de connexion sur une future appli. Je souhaite faire cela sur l'architecture CRUD
Pour l'instant je n'ai fait que écrire ma requête d'ajout d'un membre qui ne fonctionne pas avec 2 classes : l'une qui représente les membres qui s'inscrivent et l'autre qui les gère (manager).J'ai par ailleurs crée une table en local dont
chaque entrée comporte : ID (autoincrémenté), pseudo, mot de passe et date d'inscription du membre.
Le code est sale car j'ai lié les fichiers de classe pour faire un seul tronçon de code
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 <?php class Inscription_Membre//Rôle représente les inscriptions des membres { private $_pseudo; private $_password; public function hydrate(array $data) {//hydratation de l'objet "$membre" foreach ($data as $key => $value) { $method = 'set'.ucFirst($key); if(method_exists($this, $method)) { $this->method($value); } } } //Setters public function setPseudo($pseudo) { $this->_pseudo = $pseudo; } public function setPass($pass) { $this->_password = $pass; } //Getters public function getPseudo() { return $this->_pseudo; } public function getPass() { return $this->_password; } } class Manager_Membre{//Gère les membres private $_db; // Instance de PDO public function __construct($db) { $this->setDb($db); } public function addMember($membre){ $req = $this->_db->prepare('INSERT INTO membre(pseudo, pass, inscript_date) VALUES(:pseudo, :pass, now())'); $req->bindValue(':pseudo', $membre->getPseudo()); $req->bindValue(':pass', $membre->getPass()); $req->execute(); } public function setDb(PDO $db) { $this->_db = $db; } } $membre = new Inscription_Membre([ 'pseudo' => 'Victor',//$_POST['pseudo'] 'pass' => 'truc'//$_POST['pass'] ]); $db = new PDO('mysql:host=localhost;dbname=exo_crud;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE =>PDO::ERRMODE_EXCEPTION ));//Objet de l'instance PDO $manager = new Manager_Membre($db); $manager->addMember($membre);
J'ai une erreur sur la ligne sur la ligne 50 avec probablement un problème de date. D'autre part il est possible qu'il y ait d'autres erreurs, ceci est ma première tentative. Si quelqu'un pouvait me donner un coup de pouce pour me débloquer
ça serait très sympathique
Bien à la communauté
Olivier
Partager