sql >> Database teknologi >  >> RDS >> Mysql

mysql_fetch_array, mysql_fetch_assoc, mysql_fetch_object

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 bruger mysql_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.



  1. Grunde til at forvandle Access Apps til webbaserede apps

  2. Brug binær COPY-tabel FROM med psycopg2

  3. 3 måder at liste alle triggere for en given tabel i PostgreSQL

  4. videregive array til oracle procedure