Mysql
 sql >> Base de données >  >> RDS >> Mysql

Définir un objet renvoyé par PDO dans sa propre classe

Si vous souhaitez récupérer un nouvel objet d'une classe donnée, vous utilisez PDO::FETCH_CLASS . Si toutefois vous souhaitez écrire des valeurs de propriété dans un objet existant que vous avez déjà, vous utilisez PDO::FETCH_INTO , comme ceci :

 $sth->setFetchMode(PDO::FETCH_INTO, $this);
 $sth->execute();
 $sth->fetch();

Notez que les propriétés dans lesquelles vous souhaitez écrire doivent être accessibles au public, soit directement, soit via un __set() méthode magique.

Cependant, vous devriez examiner attentivement la réponse de @ Truth. Ce n'est pas une bonne conception d'avoir la même classe (et encore moins le même objet !) être responsable à la fois de l'accès à la base de données et de la représentation d'un enregistrement. Avoir une classe responsable de la gestion des enregistrements d'autorisation et une autre des enregistrements eux-mêmes.