MySQL 查询结果转化为数组形式返回的方法及实例讲解

更新时间:2024-04-25 11:53:34   人气:7718
在 MySQL 数据库中,查询操作是获取数据的核心手段。而在实际的编程应用尤其是与后端服务交互时,我们经常需要将数据库查询的结果以数组的形式进行处理和传输,以便于进一步的操作或展示给前端使用。接下来的内容将会详细介绍如何将在 MySQL 中执行 SQL 查询得到的数据转换为 PHP 数组,并通过一个具体的示例来进行详细阐述。

首先,在PHP环境中利用mysqli或者PDO扩展连接MySQL并执行SQL语句:

php

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

// 使用 mysqli 连接 MySQL
$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT id, name FROM users WHERE status='active'";
$result = $conn->query($sql);
?>


上述代码片段创建了到MySQL服务器的连接并对用户表进行了特定条件下的查询。然后 `$result` 变量存储的就是这次查询的所有匹配行结果集。

要将其转化为数组格式,请继续以下步骤:

php

$arrayResults = [];
while ($row = $result->fetch_assoc()) {
// fetch_assoc() 方法从结果集中取得一行作为关联数组
array_push($arrayResults, $row);
}

$conn->close(); //关闭数据库链接

print_r($arrayResults);

上面这段程序会遍历整个查询结果集合(即每一条记录),并通过 `fetch_assoc()` 函数逐条取出每一项数据并将它们组织成关联数组形式,随后用 `array_push()` 将这些关联数组压入一个新的多维数组 `$arrayResults` 。最后打印输出这个转化后的数组即可看到结构清晰、易于使用的JSON-like键值对列表。

例如:
假设我们的“users”表格有两列:id 和 name,且查到了两条符合条件的数据,则最终生成的 `$arrayResults` 大概如下所示:

bash

Array(
[0] => Array (
["id"] => 1,
["name"] => "User One"
),
[1] => Array (
["id"] => 2,
["name"] => "User Two"
)
)

这样我们就成功地将以行列方式储存于MySQL中的数据转变为便于后续逻辑处理以及前后端通信交换的PHP关联数组形态。对于其他语言如Python等也有对应的API方法可以实现类似的功能,原理基本一致,只是语法有所不同而已。