mysqli_fetch_row它是如何工作的?

时间:2014-11-12 21:10:53

标签: php mysql

这个功能如何运作?提出这个循环:

while ($rows=mysqli_fetch_row) { 
    do this and that...
}

基本上问题是: 每次调用此函数时,它都会返回下一行,直到没有它为止, 所以,如果再次调用它,条件就变为FALSE了吗? 所以,如果你在这个循环之后再次调用这个函数,它会返回哪一行? 感谢。

3 个答案:

答案 0 :(得分:6)

一旦到达结果的末尾,它将继续返回false

如果您希望能够在循环后再次获取行,可以使用mysqli_data_seek($result, 0)倒回到开头。

答案 1 :(得分:3)

在该循环之后调用mysqli_fetch_row()将返回false,因为光标已到达结尾。这就是循环结束的原因,因为在最后一次迭代中,赋值将是false值,这将打破循环。

要重置为结果集的开头:

mysqli_data_seek($result, 0);

另一种方法是构建一个要再次使用的行数组:

while ($row = mysqli_fetch_row) { 
    $data[] = $row;
    do this and that...
}

然后您可以foreach稍后$data

答案 2 :(得分:0)

如果你想知道它是如何工作的,那么该函数会维护一个内部数据指针,它跟踪它所在的记录(只是一个带数字的变量),每次调用它时它都会将指针递增1,为了自己设置指针,您需要使用已经概述的mysqli_data_seek()函数。