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

WordPress中获取SELECT查询关联行数组时丢失首行如何解决?

问题原因与修复方案

原因分析

你这段代码里手动维护$count索引的写法本身逻辑没问题,但如果$count变量在这段代码执行前被其他逻辑修改过(比如之前的代码已经给$count赋过非0的值),就会导致第一行数据无法存入数组的索引0位置,最终出现丢失第一行的情况。另外,这种手动计数的方式属于冗余写法,容易因为疏忽(比如漏写$count++)引发数据丢失问题。

修复方案

直接利用PHP数组的自动追加特性,去掉$count变量,每次循环时用$user_object[]来添加元素,数组会自动按顺序从0开始生成索引,确保所有行数据都被正确存入:

$sql = $wpdb->prepare( "SELECT * FROM users" );

$user_object = array();
foreach( $wpdb->get_results( $sql ) as $row ) {
    $user_object[] = array(
        "user_ID" => $row->user_ID,
        "user_name" => $row->user_name,
    );
}
 
return wp_send_json( $user_object );

额外优化

如果不需要对字段做额外处理,还可以直接让wpdb返回关联数组,省去循环赋值的步骤,代码更简洁高效(建议只查询需要的字段,避免冗余数据):

$sql = $wpdb->prepare( "SELECT user_ID, user_name FROM users" );
$user_object = $wpdb->get_results( $sql, ARRAY_A );
return wp_send_json( $user_object );

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:20:42