sql >> Databasteknik >  >> RDS >> Mysql

mysql_fetch_array, mysql_fetch_assoc, mysql_fetch_object

mysql_fetch_array ger dig en array som kan ha som nycklar:

  • både nummer och namn på kolumner, om du använder MYSQL_BOTH
  • kolumnnamn med MYSQL_ASSOC -- i det här fallet får du samma sak som du får när du använder mysql_fetch_assoc
  • endast siffror (beroende på ordningen på kolumner i frågan), om du använder MYSQL_NUM

Att få resultat indexerade efter kolumnnamn är förmodligen den mest användbara lösningen – åtminstone lättare att använda.

Men att få resultat indexerade efter positionerna för fälten i select-satsen är intressant i en situation:när du har flera kolumner som har samma namn eller alias.
I det här fallet kan du inte ha två poster med samma index i en array kommer du bara att kunna komma åt en av dessa kolumner med kolumnnamnet som index.
För de andra kolumnerna som har samma namn måste du använda numeriska index.

Den situationen är förmodligen det enda fallet där jag skulle använda mysql_fetch_array -- och jag föredrar att använda alias i min fråga för att undvika den situationen -- det är tydligare, enligt min åsikt.


mysql_fetch_assoc ger dig en array med kolumnnamn som nycklar och data som värden.

Inte mycket att säga, faktiskt.


Och mysql_fetch_object kommer att ge dig föremål i gengäld.


Välja mellan mysql_fetch_assoc och mysql_fetch_object beror förmodligen på hur du utvecklar din applikation:om du använder objekt överallt, är den andra förmodligen den mest lämpade.

Om du använder arrayer som databehållare kan du bara gå med den första.



  1. Felsökning av långvariga frågor i MS SQL Server

  2. Få dagen från ett datum i PostgreSQL

  3. Konvertera mellan datatyper för datum och tid i SQL Server (T-SQL-exempel)

  4. Hur man ändrar databaslösenordet