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

CodeIgniter动态表单提交后print_r重复输出问题该如何解决

问题原因

你的代码错误在于将数组打印和数据库批量插入的逻辑放在了for循环内部,导致每新增一条数组元素就执行一次打印和插入操作。同时print_r函数默认会返回布尔值true,输出时会被转为1,这就是你看到每次数组输出后多了个1的原因。
除此之外,循环内调用insert_batch还会导致数据库重复插入数据,提交3条数据的话最终数据库会存入6条数据,这是需要修复的隐藏问题。

修复后的代码

public function inputData(){
    $provinsi = $this->input->post('provinsi');
    $res = array();
    for ($i=0; $i < count($provinsi); $i++) { 
        $res[] = array(
            'id_finance' => '1',
            'provinsi'   => $provinsi[$i],
        );
    }
    // 插入和打印逻辑移到for循环外部,等所有数据组装完成后再执行
    $this->db->insert_batch('lokasi', $res);
    echo "<pre>";
    print_r($res);
}

说明

修改后仅在for循环内完成所有待插入数据的组装,循环结束后再一次性执行批量插入和打印操作,就能得到仅输出一次的完整数组,同时也避免了数据库重复插入的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:54:03