Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Setzen eines von PDO zurückgegebenen Objekts in eine eigene Klasse

Wenn Sie ein neues Objekt abrufen möchten einer bestimmten Klasse verwenden Sie PDO::FETCH_CLASS . Wenn Sie jedoch Eigenschaftswerte in ein vorhandenes Objekt schreiben möchten die Sie bereits haben, verwenden Sie PDO::FETCH_INTO , etwa so:

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

Beachten Sie, dass die Eigenschaften, in die Sie schreiben möchten, öffentlich zugänglich sein müssen, entweder direkt oder über ein __set() magische Methode.

Sie sollten jedoch die Antwort von @Truth sorgfältig prüfen. Es ist kein gutes Design, dieselbe Klasse zu haben (geschweige denn dasselbe Objekt !) sind sowohl für den Datenbankzugriff als auch für die Repräsentation eines Datensatzes zuständig. Haben Sie eine Klasse, die für die Verwaltung von Autorisierungsdatensätzen verantwortlich ist, und eine andere für die Datensätze selbst.