使用 PHP 和 MySQL 处理数据库时,您可能会遇到需要多次访问相同查询结果的情况使用 mysqli_fetch_array() 函数。然而,尝试在同一个结果集中多次使用 mysqli_fetch_array() 将导致空输出。
这是因为 mysqli_fetch_array() 提取并推进结果集中的指针。因此,如果您尝试再次获取相同的结果,将没有任何数据可供检索。
要解决此问题,您应该将数据操作与输出分开。首先,从数据库中取出所有数据并将其存储在一个数组中:
$db_res = mysqli_query($db_link, $sql);
$data = [];
while ($row = mysqli_fetch_assoc($db_res)) {
$data[] = $row;
}
注意:从 PHP 5.3 开始,您可以使用 fetch_all() 代替显式循环:
$db_res = mysqli_query($db_link, $sql);
$data = $db_res->fetch_all(MYSQLI_ASSOC);
将数据存储在数组中后,您可以根据需要多次迭代它:
顶行:
foreach ($data as $row) {
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3