来自 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->db->insert('display_da_silo3',$jdata);
,但结果只是插入第一组数据...更改为 insert_batch 会导致错误,因此数组为$adata
因为它是一个 JSON 对象,您可能需要使用json_decode()
。使用foreach
循环并一一添加或在insert_batch
之前添加检查数据有效性
@AbdullaNilam 感谢您告诉我验证数据只是发现了我自己的问题..有时我们犯了一些愚蠢的错误嗯?呵呵
【参考方案1】:
很抱歉,我只是发现了我自己的问题。它是我的 json api,我将它设为 parse_data[0]
而不是 parse_data
,这就是为什么它只插入第一组数据..所以在模型中它应该是 $this->db->insert_batch('display_da_silo4',$jdata); return true;
谢谢告诉我验证数据;)
【讨论】:
以上是关于来自 json api 的 Insert_batch的主要内容,如果未能解决你的问题,请参考以下文章