后续调用mysqli_fetch_object会返回下一行吗?

时间:2015-10-01 02:56:12

标签: php object mysqli fetch

我想知道,对mysqli_fetch_object的每次后续调用都将返回结果集中的下一行mysqli_fetch_row?或者为什么在以下代码中需要while循环:

while($obj=mysqli_fetch_object($result)){
    printf("%s %s\n", $obj->lastname, $obj->age);
}

1 个答案:

答案 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