了解fetch_assoc()

Gor*_*dog 9 php methods

我试图了解fetch_assoc如何/为何如此工作.我有以下代码:

$results = $connectToDb->fetch("SELECT * FROM customer");
$resultsArray = $results->fetch_assoc();
print_r($resultsArray);  //print_r 1

while($row = $results->fetch_assoc()){
    print_r($row);       //print_r 2
}
Run Code Online (Sandbox Code Playgroud)

查询从表中返回3行.为什么第一个print_r只返回查询数据的第一行,而第二个print_r返回全部3?如何将fetch_assoc放入while循环告诉它多次执行该操作?我读到fetch_assoc返回一个关联数组或NULL但是我很难理解while循环"告诉"fetch_assoc如何获取下一行,如果这有意义的话?

谢谢.

And*_*kov 19

让我们试着理解你的代码及其工作原理:

$results = $connectToDb->fetch("SELECT * FROM customer");
Run Code Online (Sandbox Code Playgroud)

变量$results具有由查询返回的行集合.集合的大小可以是0到n.

$resultsArray = $results->fetch_assoc();
Run Code Online (Sandbox Code Playgroud)

该行从集合中获取第一个元素.如果集合为空,它将返回NULL.

while($row = $results->fetch_assoc()){
}
Run Code Online (Sandbox Code Playgroud)

它可以在以下步骤中解耦:

  1. 使用元素NULL计算$row = $results->fetch_assoc()并返回数组.
  2. 替换$row = $results->fetch_assoc()while有价值并得到以下陈述:while(array(with elements))while(NULL).
  3. 如果它while(array(with elements))解决了while条件True并允许执行迭代.
  4. 如果它while(NULL)解决了while条件False并退出循环.