sql >> Databasteknik >  >> RDS >> Mysql

while ($row =mysql_fetch_array($result)) - hur många loopar utförs?

Nej. mysql_fetch_array returnerar bara nästa rad av resultatet och flyttar fram den interna pekaren. Det går inte i loop. (Internt kanske den använder någon slinga någonstans, men det är irrelevant.)

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

Detta gör följande:

  1. mysql_fetch_array hämtar och returnerar nästa rad
  2. raden är tilldelad $row
  3. uttrycket utvärderas och om det utvärderas till true , exekveras innehållet i loopen
  4. proceduren börjar på nytt

Detta gör följande:

  1. mysql_fetch_array hämtar och returnerar nästa rad
  2. raden är tilldelad $row
  3. foreach loopar över innehållet i arrayen och exekverar innehållet i slingan så många gånger som det finns objekt i arrayen

I båda fallen mysql_fetch_array gör exakt samma sak. Du har bara så många loopar som du skriver. Båda konstruktionerna gör dock inte samma sak. Den andra kommer bara att agera på en rad av resultatet, medan den första kommer att gå över alla rader.



  1. När jag anropar PreparedStatement.cancel() i ett JDBC-program, dödar det verkligen det i en Oracle-databas?

  2. Hur ger man position noll för spinner ett promptvärde?

  3. ModuleNotFoundError:Ingen modul med namnet 'mysql'

  4. Hur tar man bort stora data i tabeller i SQL utan logg?