mysql_fetch_assoc oder _object
kölir
- php
Hi,
macht es eigtl irgendeinen größeren Unterschied ob ich mysql_fetch_assoc oder mysql_fetch_object benutze?
bei ersterem kann ich innerhalb der whileschleife $row['spalteX'] verwenden bei mysql_fetch_object $row->spalteX
aber osnt noch en unterschied?
grüssöe
Naja, das eine liefert halt ein Array und das andere ein Objekt.
Verwenden kann man beides.
sry steh grad auf dem schlauch...d.h.??
was ist der unterschied nochmal?
Moin!
sry steh grad auf dem schlauch...d.h.??
was ist der unterschied nochmal?
mysql_fetch_assoc() liefert als Ergebnis ein Array.
mysql_fetch_object() liefert als Ergebnis ein Objekt.
Wenn du nicht vor hast, durch bereits intensive Nutzung objektorientierter Programmierung die eventuellen Vorteile von mysql_fetch_object zu nutzen (wäre das der Fall, würdest du nicht fragen), solltest du lieber mysql_fetch_assoc() nehmen.
- Sven Rautenberg
Hi,
danke für die Antwort...ist zrzeit nicht der fall, aber man lernt immer dazu...
könnte mir jemand nen Beispiel zeigen, wo mysql_fetch_object ein vorteil wäre?
Zu welcher klasse gehört dann dieses Object oder wie oder was...
gruß
echo $begrüßung;
könnte mir jemand nen Beispiel zeigen, wo mysql_fetch_object ein vorteil wäre?
Man muss zwei Zeichen weniger tippen
$row->feld
$row['feld']
:-)
Zu welcher klasse gehört dann dieses Object oder wie oder was...
Der eigentliche Vorteil ist die Angabe eines zweiten Parameters class_name, mit dem man ein Objekt einer selbst benannten Klasse statt eines stdClass-Objekts erzeugen kann.
stdClass bietet ansonsten nicht mehr Funktionalität als ein Array. Sie besitzt keine Methoden und Eigenschaften hat sie nur die selbst hinzugefügten.
echo "$verabschiedung $name";
d.h.?
Wenn ich die Daten mit mysql_fetch_object "abhole", kann ich sie als Object einer Klasse meiner Wahl erzeugen?
Wie sieht das dann in php aus?
while($row=mysql_fetch_object($abfrageergebnis)) {
}
wo bau ich jetz da meine eigene Klasse ein?
echo $begrüßung;
Wenn ich die Daten mit mysql_fetch_object "abhole", kann ich sie als Object einer Klasse meiner Wahl erzeugen?
Ja, ab PHP 5.0.0 geht dies.
Wie sieht das dann in php aus?
wo bau ich jetz da meine eigene Klasse ein?
Deine eigene Klasse bau^Wdeklarierst du wie üblich. Deren Name übergibst du, so wie es die Handbuchseite zur Funktion mysql_fetch_object() ausweist als zweiten Parameter.
echo "$verabschiedung $name";
thx...und standardmäßig gehört es dann zu stdClass?
aber was bringt mir diese Klasse?
echo $begrüßung;
thx...und standardmäßig gehört es dann zu stdClass?
aber was bringt mir diese Klasse?
Für deinen Anwendungsfall: nichts. Sie hat keine Methoden und keine zusätzlichen Eigenschaften.
echo "$verabschiedung $name";
Moin!
Der eigentliche Vorteil ist die Angabe eines zweiten Parameters class_name, mit dem man ein Objekt einer selbst benannten Klasse statt eines stdClass-Objekts erzeugen kann.
Das verwechselst du jetzt mit mysqli_fetch_object.
stdClass bietet ansonsten nicht mehr Funktionalität als ein Array. Sie besitzt keine Methoden und Eigenschaften hat sie nur die selbst hinzugefügten.
Und ich bezweifle sogar, dass man die Eigenschaften eines Objects einfach mit foreach oder etwas ähnlichem durchgehen kann. Bei einem Array klappt das dagegen bestens.
- Sven Rautenberg
echo $begrüßung;
Der eigentliche Vorteil ist die Angabe eines zweiten Parameters class_name, mit dem man ein Objekt einer selbst benannten Klasse statt eines stdClass-Objekts erzeugen kann.
Das verwechselst du jetzt mit mysqli_fetch_object.
Nein: object mysql_fetch_object ( resource result [, string class_name [, array params]] )
stdClass bietet ansonsten nicht mehr Funktionalität als ein Array. Sie besitzt keine Methoden und Eigenschaften hat sie nur die selbst hinzugefügten.
Und ich bezweifle sogar, dass man die Eigenschaften eines Objects einfach mit foreach oder etwas ähnlichem durchgehen kann. Bei einem Array klappt das dagegen bestens.
Es ist kein Problem foreach auf ein Objekt anzusetzen, auch ohne es vorher zum Array zu typecasten: Object iteration (klappt auch unter PHP 4).
$x->a = 1;
$x->b = 2;
$x->c = 3;
foreach($x as $key => $value)
printf('%s: %s<br>', $key, $value);
Ganz zu schweigen von den Möglichkeiten der SPL Extension.
echo "$verabschiedung $name";
echo $begrüßung;
Nein: object mysql_fetch_object ( resource result [, string class_name [, array params]] )
Ergänzung: Diese Möglichkeit steht erst ab PHP 5.0.0 zur Verfügung.
echo "$verabschiedung $name";