Hallo Heinz,
ich kann mich noch gut dran erinnern.
Hab noch mal schnell die PHP-Referenz aufgeschlagen.
Zitat zu mysql_fetch_object:
"Unter Berücksichtigung der Ausführungsgeschwindigkeit ist diese Funktion identisch zu
mysql_fetch_array() und fast so schnell wie mysql_fetch_row() (der Unterschied ist unwesentlich)."
Die entscheidene Frage lautet dann natürlich: Wann macht sich unwesentlich bemerkbar?
Höchstwahrscheinlich erst bei sehr vielen zurückgegebenen Datensätzen.
Viel interessanter ist sicher der Nutzungsumfang beider Funktionen:
Zu mysql_fetch_row:
- ist etwas schneller
- Felder können nur über die Feldnummer angesprochen werden
- Will man nur eine Tabelle aller zurückgegebenen Datensätze (mit for-Schleife) Anzeigen braucht man wirklich nicht mehr.
- Braucht man allerdings ein spezielles Feld ist das ungünsting, falls sich die DB oder die Abfrage später mal ändert
Zu mysql_fetch_object:
- ist etwas langsamer
- Felder können nur über die die Object-Eigenschaft angesprochen werden
- Feldname kann AFAIK nicht als String übergeben werden
- Will man nur eine Tabelle aller zurückgegebenen Datensätze Anzeigen ist das aufwending, weil man alle Felder manuell festlegen muss und nicht mit der for-Schleife durchlaufen lassen kann. Ist bei späteren Änderungen wieder nicht so schön
- Braucht man allerdings ein spezielles Feld macht das nichts (solange sich der Feldname nicht ändert ;-) )
Noch mal zu mysql_fetch_array:
- ist genauso schnell wie ~object
- Felder sowohl über die Feldnummer als auch über den Feldnamen ansprechbar
- Feldname kann im Gegensatz zu ~object als String übergeben werden
- Will man nur eine Tabelle aller zurückgegebenen Datensätze Anzeigen funktioniert das genauso gut wie mit ~row
- Braucht man allerdings ein spezielles Feld kann man es wie bei ~object über den Namen ansprechen (und hat damit bei späteren Änderungen der DB oder Abfrage keine Zusätzliche arbeit)
- Vereint IMHO bei Zugriff auf die Felder die Vorteile von ~row und ~object bei gleicher Geschwindigkeit von ~object
Ich würde ~row wenn überhaupt nur zur Ausgabe von Tabellen verwenden, ansonsten ~array.
Zur Geschwindigkeit: Hat Xafford evtl. Erfahrung damit und kann uns verraten ob man den Unterschied wirklich merken (ich glaube kaum das man das merkt) kann?
CU Borlander