【发布时间】:2017-09-12 18:11:03
【问题描述】:
我正在使用 Codeigniter,在一个函数中我调用一个控制器来返回我想在 foreach 中使用的数据来构建一个插入语句。
返回的 JSON 如下所示:
{
"Data": [
{
"id": "743",
"day": "1",
"day_type": "Party",
"day_dresscode": "Black",
"day_p_id": "1",
"description": "Test desc",
"name": "test"
},
{
"id": "743",
"day": "2",
"day_type": "Party",
"day_dresscode": "White",
"day_p_id": "1",
"description": "Test desc 1",
"name": "test 2"
}
]
}
我的 php 如下所示:
// This where i got my JSON
$datavar = $this->model->get_json_data($id,$code);
// This is to decode the JSON
$datavar_decode['Data'] = json_decode($datavar,true);
下面是我的foreach:
$i = 1;
foreach($datavar_decode['Data'] as $data):
$data_insert = array(
'val1' => $data['val1'],
'val2' => $data['val2'],
'val3' => $data['val3'],
'val4' => $data['val4']
);
$this->db->insert('mssqltable', $data_insert);
$i++;
endforeach;
它给了我以下错误:
Invalid argument supplied for foreach()
【问题讨论】:
-
为什么是 json?为什么不直接从 DB 类中获取结果或行并继续前进?
-
我愿意。但它告诉我
Cannot use object of type stdClass as array -
所以不要使用
$query->result(),你只需使用$query->result_array(),或者如果你只是获取一行使用$query->row_array() -
很好,还没有遇到
result_array(),但它有效。如果您想将此作为答案发布,我会接受。 -
好的,我刚刚回答了。
标签: php json codeigniter foreach