Bonjour je souhaite me connecté à pour entrée une donnée mais je n'y arrive pas, voici le script singleton qui permet de se connecté via pdo:
j'ai 2 class :
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 <?php class Patron { private static $instance; protected $connexion; private function __construct() { /* création d'un objet PDO avec les constantes définies dans la configuration */ $this->connexion = new PDO('mysql:host=localhost;dbname=labase', 'root', ''); /* mettre Exception comme mode d'erreur */ $this->connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } /* clonage impossible */ private function __clone() {} /** * Accéder à l'UNIQUE instance de la classe */ static public function getInstance() { if (! (self::$instance instanceof self)) { self::$instance = new self(); } return self::$instance; } /** * Accesseur de la connexion */ public function OpenCnx() { return $this->connexion; } } ?>
class saisie():
elle sert a récolter les saisies d'une personne qui saisie nom et adresse
class enregistre()
elle vérifie que les saisies son correcte (exemple qu'il ya bien 10 chiffre pour le numéro de telephone)
la class enregistre() héritera de la class saisie, il faut que la class enregistre puisse vérifier les attribut de la class saisie.
pour utliser la connection il faut faire appelle à :
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 class Enregistre extends Saisie { public function verifier() { //vérifie que les attribut on été bien saisie } public function save() { //enregistrement de tous les attribut qui sont dans la class saisie } } $saisie1=new Saisie($_POST['nom'],$_POST['adresse'],...); $enregistre=new Enregistre();//on transmet tous les poste dans les attribut de cette classe $enregistre->verifier();//on vérifie que les donnée son ok $enregistre->save();//on enregistre le résultat dans la bdd
Dans la class enregistre si je crée une methode de connection de la class j'ai cette erreur;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $bdd = Patron::getInstance()->OpenCnx();
comment faut t'il que je procède si je veux me connecter avec "une sous class"??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Fatal error: Call to private Patron::__construct() from invalid context in /var/www/xxtest/test.php on line 41
voici le scipt qui fait cette erreur:
il y a peut être une autre facon de le faire?
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 class frere extends fille { public function enregistre() { $bdd = Cnx::getInstance()->OpenCnx(); // enregistrement de la personne $sql_perso="INSERT INTO Clients (ID_client,nom) VALUES ('','222')"; $nb=$bdd->exec($sql_perso); $this->endID= $bdd->lastInsertId(); $bdd=null; } } $enregister= new enregistre();
voici un petit dessin pour illustrer mes class les flèches c'est lhéritage
http://www.hostingpics.net/viewer.php?id=824048pdo.jpg
Partager