来自 json api 的 Insert_batch

Posted

技术标签:

【中文标题】来自 json api 的 Insert_batch【英文标题】:Insert_batch from json api 【发布时间】:2022-01-13 04:34:26 【问题描述】:

如何在sql中输入多行数据。我的代码只输入第一组数据

控制器页面:

public function all_report()
        if($this->input->post('save'))
           
            $machine_name = $this->input->post('device_type');
            $jdata = json_decode($this->input->post('my_data'));
            $response=$this->post_model->savedata($jdata, $machine_name);
            if($response==true)
                $message = "Data import Successfully";
                echo "<script>alert('$message');</script>";
            
            else
                $message = "Data import Fail";
                echo "<script>alert('$message');</script>";
            
        

模型页面:

        function savedata($jdata, $machine_name)
         
           if($machine_name=="machine1")
              $adata = array($jdata);
              $this->db->insert_batch('table1',$adata);
              return true;
        

检索到的数据,但只有第一组数据插入到 sql 中。据我了解,insert_batch 必须在数组中,这就是我排列 json 数据的原因

【问题讨论】:

我不确定我是否遵循。 $jdata 不是已经是一个数组了吗?为什么要把它包装成另一个数组$adata 我可能会感到困惑,因为我尝试了$this-&gt;db-&gt;insert('display_da_silo3',$jdata);,但结果只是插入第一组数据...更改为 insert_batch 会导致错误,因此数组为$adata 因为它是一个 JSON 对象,您可能需要使用json_decode()。使用foreach循环并一一添加或在insert_batch之前添加检查数据有效性 @AbdullaNilam 感谢您告诉我验证数据只是发现了我自己的问题..有时我们犯了一些愚蠢的错误嗯?呵呵 【参考方案1】:

很抱歉,我只是发现了我自己的问题。它是我的 json api,我将它设为 parse_data[0] 而不是 parse_data,这就是为什么它只插入第一组数据..所以在模型中它应该是 $this-&gt;db-&gt;insert_batch('display_da_silo4',$jdata); return true; 谢谢告诉我验证数据;)

【讨论】:

以上是关于来自 json api 的 Insert_batch的主要内容,如果未能解决你的问题,请参考以下文章

如何显示来自 Api 和 Json.file 的数据

使用来自 API 的 json 响应中的不规则节点/元素

Angular 5,来自 API 的 JSON 数组

处理来自 API 的 JSON 中的语法错误

如何在 SwiftUI 中显示来自 API 的 JSON 数据?

使用来自网站 API 的 POST 请求获取 Json 数据 [重复]