我想知道,对mysqli_fetch_object的每次后续调用都将返回结果集中的下一行mysqli_fetch_row
?或者为什么在以下代码中需要while循环:
while($obj=mysqli_fetch_object($result)){
printf("%s %s\n", $obj->lastname, $obj->age);
}
答案 0 :(得分:0)
我强烈建议在一个函数上查看PHP文档,看看它是如何运作的。 This doc page应该帮助您消化并理解它实际上做了什么。
简而言之,您所使用的示例将采用$result
,这是一个myqsli_query()
结果,并为当前行创建一个对象。
while
循环适用于遍历整个查询结果。反过来,这会为每一行创建一个对象(在同一个变量$obj
下)。
从文档中提取的一个示例:
$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";
if ($result = mysqli_query($link, $query)) {
/* fetch associative array */
while ($obj = mysqli_fetch_object($result)) {
printf ("%s (%s)\n", $obj->Name, $obj->CountryCode);
}
/* free result set */
mysqli_free_result($result);
}
Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)
P.S。如果你使用Sublime Text,这个插件在跳转到文档时非常棒:https://github.com/kemayo/sublime-text-2-goto-documentation