是否需要 WHILE 循环?[复制]

Is the WHILE loop needed? [duplicate]

提问人:Gregio54 提问时间:4/30/2023 最后编辑:j08691Gregio54 更新时间:4/30/2023 访问量:44

问:

当我需要从数据库中获取一个数组时,在这种情况下是所有带有 Gold 子的用户 ID 的列表,但是真的需要 while 循环吗,我觉得我正在遍历一个数组以制作一个相同的数组?但我不明白如何使用我正在循环的原始数组?这有什么意义吗?

这是我所说的代码。 。 。

 <?php
$stmt = $conn->prepare("SELECT logby FROM users WHERE sub=?");
    $stmt->bind_param("s", $subtype);
    $stmt->execute();
    $result = $stmt->get_result();
    while ($row = $result->fetch_assoc()) {
        $logby[] = $row["logby"];
    }
    $logby = implode(",", $logby);
    echo $logby;
?>

我想更好地理解这一点

PHP 数组数据库 while-loop

评论

0赞 ceejayoz 4/30/2023
如果需要行数组,请使用 fetch_all 而不是 。 顺便说一句,会失踪的。查询中没有名为该列的列。fetch_assoc$row["logby"]
0赞 user3783243 4/30/2023
您也可以在循环中执行所有操作。 然后要么是 after 循环,要么有条件地添加 only if it not the last record...另一种解决方案可能是在MySQL中,但这取决于您的限制大小和数据返回的大小。$logby .= $row["logby"] . ',';rtrim,,group_concatgroup_concat
0赞 Gregio54 4/30/2023
@ceejayoz我仍然不明白,所以即使使用 fetch all,我仍然需要使用 while 循环?或不?你能告诉我在没有 while 循环的情况下使用 fetch all 会是什么样子吗?
0赞 Dharman 4/30/2023
FWIW,使用 PDO 会好得多。没有必要使用旧的mysqli扩展,除非你被困在一些遗留项目上。

答:

0赞 Dharman 4/30/2023 #1

不,很少需要循环。while 循环的目的是让程序员在迭代次数不确定时在循环中执行某些内容。while

在这种情况下,您可以简单地一次性将所有记录提取到数组中,例如使用 + 或使用循环。迭代次数已经知道了,因为所有行在被 .mysqli 中有 unbuffered 模式,这意味着您不知道行数,但它很少使用。fetch_all()array_column()foreachget_result