|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre éclairé
![]() Nicolas Technicien réseaux et télécoms Inscription : février 2004 Messages : 341 ![]() |
Bonjour,
j'essaie d'utiliser PDO dans ma Classe avec un fichier include: connect.inc.php Code :
Code :
($dbh a pour valeur: null ) Est-ce normal ? Est-il possible d'utiliser un include dans une classe pour gerer la connexion a la base ? ou bien dois-je ajouter un attribut dans ma classe pour gerer cette connexion ? Code :
|
||||||
|
|
00
|
|
|
#2 | ||||
|
Membre actif
![]() Inscription : mars 2007 Messages : 171 ![]() |
Je viens de faire le test suivant, peut être que cela peut t'aider :
Le fichier connect.php Code :
Le fichier maclass.php : Code :
|
||||
|
|
00
|
|
|
#3 |
|
Membre éclairé
![]() Nicolas Technicien réseaux et télécoms Inscription : février 2004 Messages : 341 ![]() |
tu n'as pas bien compris ma question:
la classe PDO est une classe de PHP, ce n'est pas une classe que j'ai créée. et mon problème c'est que, dans ma classe, l'objet $dbh de connect.php n'est pas reconnu. (ma classe perso est dans le 2eme fichier, pas dans le connect.php) |
|
|
00
|
|
|
#4 |
|
Membre actif
![]() Inscription : mars 2007 Messages : 171 ![]() |
Je sais que PDO est une classe proposée par php.
J'ai simplement créé la classe myPDO juste pour l'exemple. L'important étant que la variable $dbh est bien initialisée et que tu la retrouves correctement initialisée dans le fichier myclass.php. Le principe de ta découpe de fichier est donc correct. C'est cela que j'ai voulu vérifier. D'ailleurs tu peux déplacer la classe myPDO dans un fichier mypdo.php en ajoutant une ligne require( 'mypdo.php' ) dans le fichier connect.php, ça reste fonctionnel. Je suis navré si je suis toujours hors sujet. |
|
|
00
|
|
|
#5 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
C'est une question de portée car ça fonctionne comme les fonctions (les méthodes en sont plus ou moins). Votre classe n'a pas accès à la variable $dbh du contexte global sans utiliser la syntaxe $GLOBALS['dbh'] ou une déclaration telle global $dbh en début de toute méthode y ayant recours. D'un point de vue conceptuel il faudrait passer cette variable en paramètre voir mieux étendre la classe PDO.
Par contre, pour que PDO génère des exceptions en lieu et place d'erreurs, il vous manque, je pense : Code :
$objet_pdo->setAttribute(PDO::ATTR_ERRMODE , PDO::ERRMODE_EXCEPTION); |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com