当前位置: 首页> 最新文章列表> 如何使用 mysql_fetch_array 函数获取 MySQL 查询结果的关联数组

如何使用 mysql_fetch_array 函数获取 MySQL 查询结果的关联数组

gitbox 2025-06-03

在使用 PHP 与 MySQL 进行交互时,获取查询结果是常见且重要的一步。mysql_fetch_array() 是 PHP 中用于获取查询结果的一个函数,它可以将结果作为关联数组、数字索引数组,或者两者兼有的形式返回,方便我们在后续程序中进行处理。

注意mysql_fetch_array() 属于 mysql 扩展,该扩展自 PHP 7.0 起已被废弃,建议新项目使用 mysqliPDO_MySQL。本文主要针对维护旧系统或学习目的。

一、准备工作:连接数据库

在开始之前,我们需要连接到 MySQL 数据库并选择一个数据库:

<code> <?php // 连接数据库 $conn = mysql_connect("localhost", "username", "password");

if (!$conn) {
die("连接失败: " . mysql_error());
}

// 选择数据库
mysql_select_db("test_db", $conn);
?>
</code>

二、执行 SQL 查询

执行一条简单的 SQL 查询,获取用户表中的所有用户信息:

<code> <?php $sql = "SELECT id, name, email FROM users"; $result = mysql_query($sql, $conn);

if (!$result) {
die("查询失败: " . mysql_error());
}
?>
</code>

三、使用 mysql_fetch_array 获取数据

接下来,我们使用 mysql_fetch_array() 获取查询结果:

<code> <?php while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { echo "ID: " . $row["id"] . "<br>"; echo "姓名: " . $row["name"] . "<br>"; echo "邮箱: " . $row["email"] . "<br><br>"; } ?> </code>

上面的代码中,我们传入了 MYSQL_ASSOC 常量,它表示我们希望以关联数组的方式获取数据。这意味着我们可以通过字段名来访问每一列的值。

可选的取值模式

mysql_fetch_array() 的第二个参数可以设置为以下几种模式:

  • MYSQL_ASSOC:只返回关联数组。

  • MYSQL_NUM:只返回数字索引数组。

  • MYSQL_BOTH(默认):同时返回关联和数字索引数组。

示例(同时获取关联和索引):

<code> <?php while ($row = mysql_fetch_array($result)) { echo $row[0]; // 使用数字索引 echo $row["name"]; // 使用字段名 } ?> </code>

四、完整示例

下面是一个完整的使用流程:

<code> <?php // 连接数据库 $conn = mysql_connect("localhost", "root", "password"); if (!$conn) { die("连接失败: " . mysql_error()); }

mysql_select_db("test_db", $conn);

// 查询数据
$sql = "SELECT id, name, email FROM users";
$result = mysql_query($sql, $conn);

// 输出结果
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "<p>";
echo "用户ID: " . $row["id"] . "<br>";
echo "用户名: " . $row["name"] . "<br>";
echo "用户邮箱: " . $row["email"] . "<br>";
echo "资料链接: <a href='https://gitbox.net/user/" . $row["id"] . "'>查看</a>";
echo "</p>";
}

// 关闭连接
mysql_close($conn);
?>
</code>

五、总结

mysql_fetch_array() 提供了一种灵活的方式来获取 MySQL 查询结果。虽然它已经不推荐在新项目中使用,但了解其工作方式对于理解 PHP 和数据库交互仍有帮助。在维护旧系统时,掌握如何使用它非常必要。

在开发新的系统时,推荐使用 mysqli_fetch_assoc()PDOStatement::fetch() 来代替。无论使用哪种方式,理解底层的查询逻辑永远是构建可靠应用的基础。