Mysql
 sql >> Database >  >> RDS >> Mysql

Impostazione di un oggetto restituito da PDO nella propria classe

Se vuoi recuperare un nuovo oggetto di una data classe, usi PDO::FETCH_CLASS . Se invece vuoi scrivere valori di proprietà su un oggetto esistente che hai già, usi PDO::FETCH_INTO , in questo modo:

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

Nota che le proprietà su cui vuoi scrivere devono essere pubblicamente accessibili, direttamente o tramite un __set() metodo magico.

Tuttavia, dovresti considerare attentamente la risposta di @Truth. Non è un buon design avere la stessa classe (tanto meno lo stesso oggetto !) essere responsabile sia dell'accesso al database che della rappresentazione di un record. Avere una classe responsabile della gestione dei record di autorizzazione e un'altra per i record stessi.