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

远程MySQL执行SELECT *查询仅返回最后一条数据,如何解决?

问题原因

你遇到的返回单条数据的问题和远程数据库的拉取上限无关,是代码逻辑错误导致:

  • mysqli_fetch_assoc() 方法每次调用仅从结果集中读取1条记录,指针自动下移到下一条,你仅调用了一次该方法,自然只能拿到单条数据,并非返回的是最后一条,实际是结果集的第一条记录,只是你表内数据存储顺序刚好让你以为是最后一条。

解决方法

你需要循环遍历整个结果集,把所有行存入数组即可拿到全部数据,修改后的代码如下:

$stmt = mysqli_stmt_init($conn);
$sql = "SELECT * FROM favorite";
mysqli_stmt_prepare($stmt, $sql);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);

// 循环读取所有行
$rows = [];
while ($row = mysqli_fetch_assoc($result)) {
    $rows[] = $row;
}

var_dump($rows);

额外验证说明

如果需要确认数据库侧返回的总条数,可以在遍历前调用mysqli_num_rows($result)查看结果集总条数,确认是否和表内实际数据量一致:

echo '总记录数:' . mysqli_num_rows($result);

如果确实存在数据库侧限制(极少出现,默认配置不会限制单条SELECT的返回条数,只会限制单包最大传输大小,超过会直接报错而非截断返回),可以在SQL末尾添加LIMIT指定更大的取值范围做测试验证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:24:04