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

PHP操作SQLite数据库时循环仍仅返回首行数据求助

解决SQLite仅输出单条数据的问题

问题场景

数据库数据:

ID, Name,      Points
 3, Christian, 50
 1, Jannik,    200
 2, Lena,      50

PHP代码:

$res = $this->db->query("SELECT * FROM player");
while($row = $res->fetchArray(SQLITE3_ASSOC) ) {
    echo $row['name'];
}

仅输出Jannik,其余两条数据未显示。

解决方案

  1. 修正字段名大小写
    数据库中字段为Name(首字母大写),但代码里用了小写的$row['name']。SQLite在部分配置下会严格区分标识符大小写,导致无法读取Christian和Lena的字段值。修改代码:
$res = $this->db->query("SELECT * FROM player");
while($row = $res->fetchArray(SQLITE3_ASSOC) ) {
    echo $row['Name'];
    // 建议添加分隔符方便查看,比如换行:echo $row['Name'] . '<br>';
}
  1. 改用fetchAll批量获取数据
    如果循环读取存在异常,可先一次性获取所有结果再遍历:
$res = $this->db->query("SELECT * FROM player");
$allRows = $res->fetchAll(SQLITE3_ASSOC);
foreach($allRows as $row) {
    echo $row['Name'] . '<br>';
}
  1. 检查循环是否被提前终止
    确认代码中没有隐藏的break、return等语句,这类语句会中断循环,导致仅输出部分数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 10:18:18