mysql_fetch_array
krijgt u een array die als sleutels kan hebben:
- zowel nummers als namen van kolommen, bij gebruik van
MYSQL_BOTH
- kolomnamen, met behulp van
MYSQL_ASSOC
-- in dit geval krijg je hetzelfde als wanneer jemysql_fetch_assoc
gebruikt - alleen cijfers (afhankelijk van de volgorde van de kolommen in de zoekopdracht), bij gebruik van
MYSQL_NUM
Resultaten laten indexeren op kolomnamen is waarschijnlijk de meest bruikbare oplossing -- in ieder geval gemakkelijker te gebruiken.
Maar het verkrijgen van resultaten die worden geïndexeerd door de posities van de velden in de select-clausule is interessant in één situatie:wanneer u meerdere kolommen heeft die dezelfde naam of alias hebben.
In dit geval, aangezien u geen twee items met dezelfde index in een array, hebt u toegang tot slechts één van die kolommen door de kolomnaam als index te gebruiken.
Voor de andere kolommen die dezelfde naam hebben, moet u numerieke indexen gebruiken.
Die situatie is waarschijnlijk het enige geval waarvoor ik mysql_fetch_array
zou gebruiken -- en ik gebruik liever aliassen in mijn zoekopdracht, om die situatie te vermijden -- het is naar mijn mening duidelijker.
mysql_fetch_assoc
krijgt u een array, met kolomnamen als sleutels en gegevens als waarden.
Eigenlijk niet veel te zeggen.
En mysql_fetch_object
krijg je er voorwerpen voor terug.
Kiezen tussen mysql_fetch_assoc
en mysql_fetch_object
hangt hoogstwaarschijnlijk af van hoe u uw toepassing ontwikkelt:als u overal objecten gebruikt, is de tweede waarschijnlijk het meest geschikt.
Als je arrays als datacontainers gebruikt, kun je gewoon voor de eerste gaan.