Php 使用json_encode在数据库中插入值时出现问题

Php 使用json_encode在数据库中插入值时出现问题,php,arrays,codeigniter,json,Php,Arrays,Codeigniter,Json,我想在数据库表的一行上插入一个值,后面是php代码(foreach),但插入后得到下面的错误,我该怎么办 值: <div class="column"> <input type="text" name="start_date[1][]" value="1111"> <input type="text" name="end_date[1][]" value="1111"> <input type="text" name="price

我想在数据库表的一行上插入一个值,后面是php代码(
foreach
),但插入后得到下面的错误,我该怎么办

值:

<div class="column">
    <input type="text" name="start_date[1][]" value="1111">
    <input type="text" name="end_date[1][]" value="1111">
    <input type="text" name="price_change[1][]" value="1111">
</div>
<div class="column">
    <input type="text" name="start_date[2][]" value="2222">
    <input type="text" name="end_date[2][]" value="2222">
    <input type="text" name="price_change[2][]" value="2222">
</div>
<div class="column">
    <input type="text" name="start_date[3][]" value="3333">
    <input type="text" name="end_date[3][]" value="3333">
    <input type="text" name="price_change[3][]" value="3333">
</div>
    $residence_ups_input = $this->input->post('start_date');
    $residence_upe_input = $this->input->post('end_date');
    $residence_upc_input = $this->input->post('price_change');
    var_dump($residence_ups_input); // output this is: nobool(false)
    $residence_p = array();
    foreach ($residence_ups_input as $idx => $name) { //line 134        
        $residence_p[] = array(
            'start_date' => $residence_ups_input[$idx],
            'end_date' => $residence_upe_input[$idx],
            'price_change' => $residence_upc_input[$idx]
        );
    }
    ;
    $data = array(
        //'name' => $this -> input -> post('name'),
        'residence_p' => json_encode($residence_p)
    );
    $this->db->insert('tour_foreign', $data);
错误:

<div class="column">
    <input type="text" name="start_date[1][]" value="1111">
    <input type="text" name="end_date[1][]" value="1111">
    <input type="text" name="price_change[1][]" value="1111">
</div>
<div class="column">
    <input type="text" name="start_date[2][]" value="2222">
    <input type="text" name="end_date[2][]" value="2222">
    <input type="text" name="price_change[2][]" value="2222">
</div>
<div class="column">
    <input type="text" name="start_date[3][]" value="3333">
    <input type="text" name="end_date[3][]" value="3333">
    <input type="text" name="price_change[3][]" value="3333">
</div>
    $residence_ups_input = $this->input->post('start_date');
    $residence_upe_input = $this->input->post('end_date');
    $residence_upc_input = $this->input->post('price_change');
    var_dump($residence_ups_input); // output this is: nobool(false)
    $residence_p = array();
    foreach ($residence_ups_input as $idx => $name) { //line 134        
        $residence_p[] = array(
            'start_date' => $residence_ups_input[$idx],
            'end_date' => $residence_upe_input[$idx],
            'price_change' => $residence_upc_input[$idx]
        );
    }
    ;
    $data = array(
        //'name' => $this -> input -> post('name'),
        'residence_p' => json_encode($residence_p)
    );
    $this->db->insert('tour_foreign', $data);
遇到PHP错误
严重性:警告
消息:无效 为foreach()提供的参数文件名:inser.php
行 编号:134

替换

 foreach ($residence_ups_input as $idx => $name) { 

您正在将一个对象传递给foreach,它需要一个关联数组。从现在开始

json_decode($string, true)
而不是

json_decode($string)
并按如下方式访问变量:

$var['key'];
而不是
$var->key

变量
$residence\u ups\u input
不是数组

使用此代码:

array_push($residence_ups_input,$this->input->post('start_date'));
array_push($residence_upe_input,$this->input->post('end_date'));
array_push($residence_upc_input,$this->input->post('price_change'));
要获取值,请使用
foreach()
更改所有列:

<div class="column">
    <input type="text" name="start_date[1][]" value="1111">
    <input type="text" name="end_date[1][]" value="1111">
    <input type="text" name="price_change[1][]" value="1111">
</div>
....

....
致:


....

我没有在code
json\u decode($string)
中使用
codeigniter
。这是真的很抱歉,但我不熟悉
codeigniter
,那是什么?请查看我在上面的cod中的值,它们是数组。$residence\u ups\u input是一个只包含价格变化的数组。您的代码中有一些错误,因为我已经测试过并且它可以工作,您有
标签吗??查看更新