【问题标题】:Updating Multiple Rows in Codeigniter在 Codeigniter 中更新多行
【发布时间】:2012-08-27 15:56:47
【问题描述】:

我可以在数据库中插入多行,但问题是当我尝试更新它时,它会给我一个 Codeigniter 错误消息。这是我的模型,实际上我在控制器中没有什么重要的发现错误,因为我只是在控制器中加载了该模型。

$data  = array();
//$todayDate = date('Y-m-d');
for($i = 1; $i < count($_POST['code']); $i++) {
    //$code=$_POST['code'][$i];
    if($_POST['code'][$i] != '') {
        $data[] = array(
            $code='code' => $_POST['code'][$i],
            'price' => $_POST['sell']
            );
    }
}
$linksCount = count($data);

if($linksCount) {
    $this->db->where('code',$code);
    $this->db->insert_batch('sell_rate', $data);
}

return $linksCount;

【问题讨论】:

    标签: php sql codeigniter sql-update


    【解决方案1】:

    在你的Model下面的部分应该是

    $data[] = array(
        $code='code' => $_POST['code'][$i],
        'price' => $_POST['sell']
    );
    

    替换为

    $data[] = array(
        'code' => $_POST['code'][$i],
        'price' => $_POST['sell']
    );
    

    要更新值,您应该使用 update_batch 而不是 insert_batch

    $this->db->update_batch('yourtableName', $data, 'code'); // 'code' is where key
    

    yourtableName 替换为您的原始表名,并且code 用于where 键,因此您不需要使用$this-&gt;db-&gt;where('code',$code)

    参考:CodeIgniter

    【讨论】:

    • 它在字段列表中给出了一个错误未知列数组。它试图插入“数组”而不是数组中的数据
    • 感谢 vaia,您的代码可以正常工作。但会有细微的变化。它将是 'price'=>$POST['sell'][$i]
    • 我有一个问题,如果我没有为代码发布任何销售字段,它会将代码价格设置为 0。但我想保持它以前的值。这意味着如果我不为代码设置任何值,它将保留其以前的值。请帮我解决这个问题
    • 我想你可以像if($_POST['code'][$i] != '' &amp;&amp; $POST['sell'][$i] !='')一样检查两者
    • 我不需要检查代码字段是否填写。我想检查我是否为卖设置了任何值,然后它将运行查询。所以我尝试了 'if($POST['sell'][$i] !='') { $this->db->where ('代码',$代码); $this->db->update('sell_rate',$price); } 否则返回假;'但它像以前一样给了我一个 0 值
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    • 2017-09-02
    • 2020-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多