首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >while循环如何使用mysqli_fetch_assoc()?

while循环如何使用mysqli_fetch_assoc()?
EN

Stack Overflow用户
提问于 2018-07-29 00:45:17
回答 2查看 7K关注 0票数 2

这可能是一个愚蠢的初学者问题,我不认为它仅限于mysqli_fetch_assoc(),所以它可能是一个通用的编程问题。

不管怎样,我有一段PHP代码,用于使用mysqli从数据库获取数据

代码语言:javascript
复制
$sql = "SELECT name FROM table1";
$result = mysqli_query($conn, $sql);

if($result){
    if(mysqli_num_rows($result) > 0){
        while($row = mysqli_fetch_assoc($result)){
            echo "Name: " . $row["name"]. "<br>";
        }
    }
}

我不明白的是while循环是如何工作的。它如何迭代到下一个元素并知道何时结束?mysqli_fetch_assoc()返回一个关联数组,该数组存储在row变量中,这意味着它不为空,因此为真,让我们运行while循环。我不明白的是,当没有更多的行时,它是如何迭代各行并结束的。我没有专门做任何事情来将行更改为下一行,那么它是如何自己完成的呢?

另外,mysqli_fetch_assoc()返回一个关联数组,所以"name“键不应该包含1个元素吗?或者它是该列中所有行的数组?

(我希望你能理解我想说的,我不是最擅长解释的人。)

编辑:我不明白的是这段代码是如何遍历所有行的。它是这个函数中“内置代码”的一部分吗?(我在任何地方都找不到来确认)

EN

回答 2

Stack Overflow用户

发布于 2018-07-29 00:52:50

最后,当mysqli_fetch_assoc($result)用完所有行时,它将返回NULL,计算结果为false,从而中断循环。

名称在数据库中只产生一行,因此$row['name']将是特定行的‘$row’值。

让我们用一个简单的例子来分析一下它是如何在内部工作的(请注意,它的工作效率要高得多,实际上不会运行多个查询):

代码语言:javascript
复制
$result = ['currentRow' => 0, 'query' => 'SELECT name FROM table1'];

while ($row = mysqli_fetch_result($result)) {
}

//First iteration
mysqli_fetch_result queries 'SELECT name FROM table1 LIMIT 0, 1'
it increments internally $result['currentRow'] to 1
it returns the row that was found

//Second iteration
mysqli_fetch_result queries 'SELECT name FROM table1 LIMIT 1, 1'
it increments internally $result['currentRow'] to 2
it returns the row that was found

//Third iteration
mysqli_fetch_result queries 'SELECT name FROM table1 LIMIT 2, 1'
no rows returned! Just simply return null (This will cause your while loop to break out)
票数 1
EN

Stack Overflow用户

发布于 2018-07-29 00:52:17

您总是将$result作为参数传递给mysqli_fetch_assoc。此参数保存迭代器信息,mysqli_fetch_assoc将使用该信息在每次调用此函数时前进到下一行。

在每次迭代中,$row['name']将是一个单独的字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51573338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档