php 查询数据库 $db->fetch_array($result) 出现每条记录会包含数字索引和字段名两种形式问题

$row_order = $db->fetch_array() 可能返回的是包含字段名和值的关联数组

如果同时使用 MYSQL_BOTH(默认)模式,每条记录会包含数字索引和字段名两种形式

如:  同时存在 数字索引和字段名 

            [0] => 9377E762-D54F-2068-494F-82395D0C9A34
            [id] => 9377E762-D54F-2068-494F-82395D0C9A34
            [1] => 保存
            [contact_name] => 保存
            [2] => 032525
            [contact_callerid] => 032525
            [3] => 2025-03-26 09:44:52
            [date_entered] => 2025-03-26 09:44:52
            [4] => 地方媒体
            [contact_source] => 地方媒体
            [5] => 抖音
            [media_name] => 抖音
            [6] => 2025-03-26 09:44:00
            [media_date] => 2025-03-26 09:44:00

方法一

// 方案1:只获取关联数组
$db->fetch_array($result, MYSQL_ASSOC);

// 方案2:只获取数字索引数组  
$db->fetch_array($result, MYSQL_NUM);

如果php版本低 方法一 可能会不起作用

方法二  

强制使用纯关联数组

$result = $db->query($sql);
while($row_order = $db->fetch_array($result)) {
    // 手动创建纯关联数组
    $clean_row = array();
    foreach($row_order as $key => $value) {
        if(!is_numeric($key)) {  // 只保留非数字键
            $clean_row[$key] = $value;
        }
    }
    array_push($items, $clean_row);
}

 

posted @ 2025-04-04 10:23  海乐学习  阅读(15)  评论(0)    收藏  举报