当前位置: 首页> 最新文章列表> 如何将mysql_fetch_row函数和while循环结合使用,遍历多条数据库记录?

如何将mysql_fetch_row函数和while循环结合使用,遍历多条数据库记录?

gitbox 2025-06-11

在PHP中,操作MySQL数据库时,常常需要遍历查询结果集中的多条记录。mysql_fetch_row()函数是一个经典的函数,用于从结果集中取得一行作为数字索引的数组。虽然在现代开发中更推荐使用mysqliPDO,但了解mysql_fetch_row()的使用仍然对理解基础数据库操作有帮助。

本文将详细讲解如何将mysql_fetch_row()函数和while循环结合使用,遍历数据库返回的多条记录。

1. mysql_fetch_row()简介

mysql_fetch_row()函数每次调用会从结果集里取出下一条记录,并以索引数组形式返回。例如,如果表中有三列,返回的数组下标就是0、1、2。

当没有更多行时,函数返回false,这也是while循环停止的条件。

2. 基本流程

假设我们已经成功执行了一个SQL查询:

$query = "SELECT id, name, email FROM users";
$result = mysql_query($query);

$result是查询结果资源,我们可以通过mysql_fetch_row()遍历所有行。

3. 结合while循环遍历

while循环控制,调用mysql_fetch_row()直到返回false。每次循环里,我们都可以访问当前行的各个字段。

示例如下:

while ($row = mysql_fetch_row($result)) {
    // $row[0] 是 id
    // $row[1] 是 name
    // $row[2] 是 email
    echo "ID: " . $row[0] . ", Name: " . $row[1] . ", Email: " . $row[2] . "<br>";
}

这样可以逐条输出查询结果。

4. 完整示例代码

以下示例展示从连接数据库,到执行查询,再到遍历结果的完整过程:

<?php
// 连接数据库
$link = mysql_connect("gitbox.net", "username", "password");
if (!$link) {
    die("Could not connect: " . mysql_error());
}
// 选择数据库
mysql_select_db("testdb", $link);
// 执行查询
$query = "SELECT id, name, email FROM users";
$result = mysql_query($query);
if (!$result) {
    die("Query failed: " . mysql_error());
}
// 使用while和mysql_fetch_row遍历结果
while ($row = mysql_fetch_row($result)) {
    echo "ID: " . $row[0] . ", Name: " . $row[1] . ", Email: " . $row[2] . "<br>";
}
// 关闭连接
mysql_close($link);
?>

5. 注意事项

  • mysql_*函数自PHP 7.0起已废弃,建议使用mysqliPDO

  • mysql_fetch_row()返回的是索引数组,如果需要使用关联数组可以使用mysql_fetch_assoc()

  • 遍历大量数据时,使用循环结合mysql_fetch_row()能够有效处理。