sql >> Database >  >> RDS >> Mysql

mysql_fetch_array, mysql_fetch_assoc, mysql_fetch_object

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



  1. pyodbc kan geen verbinding maken met de database

  2. Verbindingstime-out instellen in SQLAlchemy

  3. Converteer rijen naar kolommen met 'Pivot' in SQL Server

  4. 'datetime2'-fout bij gebruik van entiteitsframework in VS 2010 .net 4.0