You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将MySQL查询结果行存入PHP数组?

解决MySQL查询结果存入PHP数组的问题

首先帮你排查两个关键问题:

1. 变量名拼写错误(容易忽略的坑)

你连接数据库时用的是$db_name,但SQL语句里写的是$dbname(少了下划线),这会导致查询的表不存在,自然拿不到数据,数组也就为空了!先把这个修正过来:

$sql = "SELECT * FROM " . $db_name . " WHERE id ='$id'";

2. 数组存储的写法调整

你的现有写法其实会生成一个二维数组,比如最终$thisArray的结构是:

[
    ['张三', '123456'],
    ['李四', '789012']
]

如果这不是你想要的结构,可以根据需求调整:

需求A:存储为关联数组(键值对)

如果想把Name作为键,accountNumber作为值,写法改成这样:

$thisArray = []; // 先初始化数组,避免未定义变量警告
while ($row = mysqli_fetch_array($query)) {
    $thisArray[$row['Name']] = $row['accountNumber'];
}
// 输出示例:Array ( [张三] => 123456 [李四] => 789012 )

需求B:存储为一维数组(只存单个字段)

如果只想收集所有Name或者accountNumber,直接追加单个值:

$namesArray = [];
while ($row = mysqli_fetch_array($query)) {
    $namesArray[] = $row['Name'];
}
// 输出示例:Array ( [0] => 张三 [1] => 李四 )

需求C:保留清晰的二维数组结构

如果你的需求就是二维数组,建议把字段名也带上,后续取值更直观:

$thisArray = [];
while ($row = mysqli_fetch_array($query)) {
    $thisArray[] = [
        'Name' => $row['Name'],
        'accountNumber' => $row['accountNumber']
    ];
}
// 后续调用示例:echo $thisArray[0]['Name'];

另外,推荐用mysqli_fetch_assoc()代替mysqli_fetch_array(),前者只返回关联数组,避免索引数组的冗余,性能也更优~

内容的提问来源于stack exchange,提问作者user9419091

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:13:13