如何在同一结果上多次使用 mysqli_fetch_array()
在使用数据库驱动的应用程序时,通常需要迭代处理返回的数据行。在MySQL中,mysqli_fetch_array()函数在从查询结果中提取数据方面起着至关重要的作用。然而,当您尝试使用 mysqli_fetch_array() 多次访问同一结果集时,会出现一个常见的挑战,从而导致意外行为。
此问题的原因源于 mysqli_fetch_array() 的行为。每次调用都会将结果集中的游标移动到下一行。因此,对同一结果使用两次将仅提供对前两行的访问。为了克服这个限制,我们必须将数据操作与输出分开。
1.捕获数据:
第一步是将所有数据提取到数组中:
<code class="php">$db_res = mysqli_query( $db_link, $sql ); $data = array(); 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>
2.多次利用数据:
捕获到数组后,您可以多次迭代它,确保访问所有行:
<code class="php">// Top row foreach ($data as $row) {</code>
以上是您可以在同一结果集上多次重复使用 mysqli_fetch_array() 吗?的详细内容。更多信息请关注PHP中文网其他相关文章!