使用 PHP 和 MySQL 处理数据库时,您可能会遇到需要多次访问相同查询结果的情况使用 mysqli_fetch_array() 函数。但是,尝试在同一结果集中多次使用 mysqli_fetch_array() 将导致空输出。
这是因为 mysqli_fetch_array() 提取并推进结果集中的指针。因此,如果您尝试再次获取相同的结果,将没有任何数据可供检索。
要解决此问题,您应该将数据操作与输出分开。首先,从数据库中获取所有数据并将其存储在数组中:
<code class="php">$db_res = mysqli_query($db_link, $sql); $data = []; while ($row = mysqli_fetch_assoc($db_res)) { $data[] = $row; }</code>
注意:从 PHP 5.3 开始,您可以使用 fetch_all() 代替显式循环:
<code class="php">$db_res = mysqli_query($db_link, $sql); $data = $db_res->fetch_all(MYSQLI_ASSOC);</code>
将数据存储在数组中后,您可以根据需要多次迭代它:
顶行:
<code class="php">foreach ($data as $row) {</code>
以上是如何在同一结果集上多次使用“mysqli_fetch_array()”?的详细内容。更多信息请关注PHP中文网其他相关文章!