2012-08-28 50 views
7

Ich habe eine PHP-Klasse (POJO_FOO), die auf eine Tabelle (TABLE_FOO) zuordnet.Rückgabe von Array von Objekten aus PDO

z.B. eine Zeile entspricht einem Objekt dieser Klasse.

Jetzt schreibe ich einen Manager, der Array von solchen Objekten zurückgibt, die einer bestimmten Abfrage entsprechen. Wie kann ich mithilfe von PDO Array von Objekten zurückgeben?

Wenn ich einfach fetchAll mache, gibt es Array (stellvertretend für die Anzahl der Ergebnisse) des assoziativen Arrays zurück (column =>value). Gibt es eine Option in fetchALL, die mir Ergebnisse in Form von Array von Objekten geben kann?

+3

'PDO :: FETCH_CLASS'? – eggyal

+0

wow es funktioniert ... weiß nicht, warum es nicht funktionierte, als ich es versuchte. trotzdem .. danke für die Antwort. – mrd081

Antwort

8

können Sie PDO :: FETCH_CLASS Ihre Klasse mit Ihren Daten Hydrat:

return $pdo->query('SELECT * FROM tablefoo')->fetchAll(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE,'POJO_FOO'); 

es ist auch nützlich PDO :: FETCH_CLASS zu verwenden | PDO :: FETCH_PROPS_LATE, weil es die Konstruktion des Objekts macht mehr konsistent. Normalerweise wird der Konstruktor vor allem aufgerufen. Wenn Sie FETCH_PROPS_LATE nicht verwenden, wird es aufgerufen, nachdem Ihre Eigenschaften hydratisiert sind.

+0

wow es funktioniert ... weiß nicht, warum es nicht funktionierte, als ich es versuchte. anyways .. danke für die Antwort :) – mrd081

+0

ein kleiner Kommentar über PDO :: FETCH_CLASS | PDO :: FETCH_PROPS_LATE – artragis

+0

was wird das tun? (FETCH_PROPS_LATE) – mrd081