Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更新Codeigniter中的多行_Php_Sql_Codeigniter_Sql Update - Fatal编程技术网

Php 更新Codeigniter中的多行

Php 更新Codeigniter中的多行,php,sql,codeigniter,sql-update,Php,Sql,Codeigniter,Sql Update,我可以在数据库中插入多行,但问题是当我尝试更新时,它会给我一条Codeigniter错误消息。这是我的模型,实际上我在控制器中找不到任何重要的错误,因为我只是在控制器中加载该模型 $data = array(); //$todayDate = date('Y-m-d'); for($i = 1; $i < count($_POST['code']); $i++) { //$code=$_POST['code'][$i]; if($_POST['code'][$i] !=

我可以在数据库中插入多行,但问题是当我尝试更新时,它会给我一条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;
$data=array();
//$todayDate=日期('Y-m-d');
对于($i=1;$i$\u POST['code'][$i],
'price'=>$\u POST['sell']
);
}
}
$LinkScont=计数($data);
如果($LinkScont){
$this->db->where('code',$code);
$this->db->insert_batch('sell_rate',$data);
}
返回$LinkScont;

在您的
车型中
以下部分应

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

$data[] = array(
    'code' => $_POST['code'][$i],
    'price' => $_POST['sell']
);
要更新值,应使用
update\u batch
而不是
insert\u batch

$this->db->update_batch('yourtableName', $data, 'code'); // 'code' is where key
yourtableName
替换为原始表名,并且
code
用于
where
键,因此不需要使用
$this->db->where('code',$code)


参考:

它在字段列表中给出了一个错误未知的列数组。它试图插入“数组”而不是数组中的数据。感谢vaia,您的代码可以工作,但会有一点变化。它将是'price'=>$POST['sell'][$i]我有一个问题,如果我没有为代码发布任何sell字段,它会将代码价格设置为0。但是我想保持它以前的值。这意味着如果我没有为代码输入任何值,它将保持它以前的值。请帮助我解决这个问题。我想你可以检查这两个值,比如
if($\u POST['code'][$i]!='&&$POST['sell'][$i]!='
我不需要检查代码字段是否已填充。我想检查我是否为sell设置了任何值,然后它将运行查询。因此我尝试使用“if($POST['sell'][$i]!=”{$this->db->where('code',$code);$this->db->update('sell_rate',$price);}否则返回false;'但它像以前一样给我一个0值