sql >> Database >  >> RDS >> Mysql

while ($row =mysql_fetch_array($result)) - hoeveel loops worden er uitgevoerd?

Nee. mysql_fetch_array retourneert gewoon de volgende rij van het resultaat en verplaatst de interne aanwijzer. Het loopt niet. (Intern kan het wel of niet ergens een lus gebruiken, maar dat is niet relevant.)

while ($row = mysql_fetch_array($result)) {
   ...
}

Dit doet het volgende:

  1. mysql_fetch_array haalt de volgende rij op en geeft deze terug
  2. de rij is toegewezen aan $row
  3. de uitdrukking wordt geëvalueerd en als deze wordt geëvalueerd als true , de inhoud van de lus wordt uitgevoerd
  4. de procedure begint opnieuw

Dit doet het volgende:

  1. mysql_fetch_array haalt de volgende rij op en geeft deze terug
  2. de rij is toegewezen aan $row
  3. foreach maakt een lus over de inhoud van de array en voert de inhoud van de lus zo vaak uit als er items in de array zijn

In beide gevallen mysql_fetch_array doet precies hetzelfde. Je hebt maar zoveel lussen als je schrijft. Beide constructies doen echter niet hetzelfde. De tweede zal slechts op één rij van het resultaat werken, terwijl de eerste over alle rijen zal lopen.



  1. Oracle SQL Developer - Hoe een gedropte tabel te herstellen

  2. SQL Server recursieve query

  3. Uitvaltijd voor upgrade van AWS RDS-instantie

  4. Schemapatroon zoeken