我试图了解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)
它可以在以下步骤中解耦:
$row = $results->fetch_assoc()并返回数组.$row = $results->fetch_assoc()为while有价值并得到以下陈述:while(array(with elements))或while(NULL).while(array(with elements))解决了while条件True并允许执行迭代.while(NULL)解决了while条件False并退出循环.