【发布时间】:2015-12-28 23:39:16
【问题描述】:
我想知道每次对 mysqli_fetch_object 的后续调用都会返回结果集中的下一行,就像 mysqli_fetch_row 一样?或者为什么以下代码中需要while循环:
while($obj=mysqli_fetch_object($result)){
printf("%s %s\n", $obj->lastname, $obj->age);
}
【问题讨论】:
我想知道每次对 mysqli_fetch_object 的后续调用都会返回结果集中的下一行,就像 mysqli_fetch_row 一样?或者为什么以下代码中需要while循环:
while($obj=mysqli_fetch_object($result)){
printf("%s %s\n", $obj->lastname, $obj->age);
}
【问题讨论】:
我强烈建议您查看有关函数的 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
【讨论】: