mysql_fetch_array
vil give dig et array, der kan have som nøgler:
- både tal og navne på kolonner, hvis du bruger
MYSQL_BOTH
- kolonnenavne ved hjælp af
MYSQL_ASSOC
-- i dette tilfælde får du det samme, som du får, når du brugermysql_fetch_assoc
- kun tal (afhængigt af rækkefølgen af kolonner i forespørgslen), hvis du bruger
MYSQL_NUM
At få resultater indekseret efter kolonnenavne er nok den mest nyttige løsning – i det mindste nemmere at bruge.
Men at få resultater indekseret efter positionerne af felterne i select-klausulen er interessant i én situation:når du har flere kolonner, der har samme navn eller alias.
I dette tilfælde, da du ikke kan have to poster med det samme indeks i et array, vil du kun kunne få adgang til én af disse kolonner ved at bruge kolonnenavnet som indeks.
For de andre kolonner, der har samme navn, skal du bruge numeriske indekser.
Den situation er sandsynligvis det eneste tilfælde, hvor jeg ville bruge mysql_fetch_array
-- og jeg foretrækker hellere at bruge aliaser i min forespørgsel for at undgå den situation -- det er efter min mening mere klart.
mysql_fetch_assoc
vil give dig en matrix med kolonnenavne som nøgler og data som værdier.
Ikke meget at sige, faktisk.
Og mysql_fetch_object
vil give dig genstande til gengæld.
Vælg mellem mysql_fetch_assoc
og mysql_fetch_object
afhænger sandsynligvis af, hvordan du udvikler din applikation:hvis du bruger objekter overalt, er den anden sandsynligvis den mest egnede.
Hvis du bruger arrays som data-containere, kan du bare gå med den første.