Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PDO
PDO Forum d'entraide sur PDO (PHP Data Objects) : pilote générique de bases de données avec PHP. Avant de poster -> FAQ PDO et Cours PDO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/11/2011, 17h43   #1
Invité régulier
 
Inscription : février 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 28
Points : 5
Points : 5
Par défaut PDO::FETCH_CLASS et construct

Bonjour,

bizarre bizarre...
PDO::FETCH_CLASS marche sauf lorsque que je définis un constructeur auquel cas il ne me renvoie bien un objet mais dont toutes les propriétés sont vides.

Après qq lectures j'ai tenté de mettre mes propriétés de classe en public, j'ai aussi essayé d'ajouter PDO::FETCH_PROPS_LATE lors de ma tentative d’instanciation
Rien n'y fait.

Mon constructeur ne fait qu'initialiser les propriétés de mon objet. Il est en public.

Auriez-vous une piste?

Merci
Luc
lucho27 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 17h55   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 031
Points : 5 031
Si tu as un constructeur, utilise FETCH_INTO sur une instance existante. Les propriété doivent avoir une visibilité publique (la méthode magique __set fonctionne).
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 18h33   #3
Invité régulier
 
Inscription : février 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 28
Points : 5
Points : 5
Merci Benjamin, mais FETCH_INTO ne s'applique pas dans mon cas.
La fonction dans laquelle j'appelle mon fetch n'est pas une méthode de ma classe.
Je souhaitais créer un nouvel objet grâce au FETCH_CLASS comme dans cet exemple :

Code :
1
2
3
4
5
6
/* create instance automatically */
$sth->setFetchMode( PDO::FETCH_CLASS, 'user');
$sth->execute();
$user = $sth->fetch( PDO::FETCH_CLASS );
$sth->closeCursor();
print ($user->id);
lucho27 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 19h41   #4
Invité régulier
 
Inscription : février 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 28
Points : 5
Points : 5
bon je ne trouve pas la cause du problème de mon FETCH_CLASS...

du coup je me suis appuyé sur votre réponse :
j'instancie un objet que je modifie grâce au FETCH_INTO

merci à nouveau et pardon pour les balise code omises
Luc
lucho27 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h49.


 
 
 
 
Partenaires

Hébergement Web