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

Android调用PHP接口从MySQL取数据仅返回单行问题求助

解决Android应用仅获取MySQL数据表第一行数据的问题

咱们先从PHP代码入手排查问题,再给出针对性的修复方案:

1. 原代码的潜在隐患

你的代码片段里有几个可能导致数据不全的问题:

  • 没有提前初始化$flag为空数组,极端情况下可能导致JSON输出异常
  • 最后关闭数据库连接的参数写错了:CloseCon($c...应该是CloseCon($conn)
  • 缺少查询失败的异常处理逻辑
  • 使用mysqli_fetch_array()会同时返回索引数组和关联数组,生成的JSON冗余度较高,也可能增加Android端解析的复杂度

2. 修复后的PHP代码

<?php
include 'db_connection.php';
$conn = OpenCon();

// 检查数据库连接状态
if (mysqli_connect_errno()) {
    echo json_encode(["error" => "数据库连接失败:" . mysqli_connect_error()]);
    exit;
}

// 设置响应头,确保JSON编码格式正确且无乱码
header('Content-Type: application/json; charset=utf-8');

$sql = "SELECT * FROM asadharap";
$result = mysqli_query($conn, $sql);

// 初始化空数组存储结果
$response = [];

if ($result) {
    // 遍历所有结果行,用mysqli_fetch_assoc返回纯关联数组
    while ($row = mysqli_fetch_assoc($result)) {
        $response[] = $row;
    }
    // 释放结果集资源
    mysqli_free_result($result);
} else {
    $response["error"] = "查询失败:" . mysqli_error($conn);
}

// 输出JSON格式数据
echo json_encode($response);

// 正确关闭数据库连接
CloseCon($conn);
?>

3. 额外检查建议

除了PHP端,也要确认Android端的解析逻辑:

  • 确保你是把返回的JSON解析成数组对象,而不是单个数据对象。比如用Gson解析时,要解析成List<你的数据模型类>,而不是单个模型实例
  • 可以先在浏览器或Postman中访问PHP接口,查看返回的JSON是否包含所有行数据,排除Android端的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:34:57