作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我们有这样的代码:
$result = $conn->query('SELECT username FROM users');
$row1 = $result->fetch_assoc();
echo $row1['username'], '<br>';
$row2 = $result->fetch_assoc();
echo $row2['username'], '<br>';
第二个 echo 会显示表中第二行的用户名,但为什么呢? fetch_assoc() 如何知道您想要下一行作为返回。它是否有一些内置计数器来计算它被调用的次数?
最佳答案
它保留指向返回行列表的指针。当查询返回数据时(即创建结果对象时),它会检索查询返回的所有行。
> row1 foo bar
row2 baz boo
row3 tst tmp
调用fetch_assoc
时,返回指针指向的行,指针前进:
return_val = (row1, foo, bar)
increment pointer
row1 foo bar
> row2 baz boo
row3 tst tmp
return return_val
重复此操作,直到没有更多可返回的内容。 fetch_assoc
然后永远返回 null。
最后一部分允许您在 while
循环中自动使用它:
while ($row = $result->fetch_assoc()) {
// do something with $row
}
当 fetch_assoc
返回 null 时,while 循环终止并在循环外继续执行 - 并且已读取完整的结果集。
关于php - fetch_assoc 如何知道您想要表中的下一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47253954/
我是一名优秀的程序员,十分优秀!