Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.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
Codeigniter:错误无法将CI_DB_mysqli_结果类型的对象用作数组_Codeigniter - Fatal编程技术网

Codeigniter:错误无法将CI_DB_mysqli_结果类型的对象用作数组

Codeigniter:错误无法将CI_DB_mysqli_结果类型的对象用作数组,codeigniter,Codeigniter,我目前有问题的Codigniter 这是我的密码 public function move($data) { $sku = $data['sku']; $store = $data['store_id']; $sql = "SELECT * FROM products WHERE sku = ? AND store_id = ?"; $query = $this->db->query($sql, array($data['s

我目前有问题的Codigniter

这是我的密码

    public function move($data)
{
    $sku = $data['sku'];
    $store = $data['store_id'];
    $sql = "SELECT * FROM products WHERE sku = ? AND store_id = ?";
    $query = $this->db->query($sql, array($data['sku'], $data['store_id']));

    if($query->result_array() != "") {
        $data['qty'] =  $data['qty'] + $query['qty'] ;  //Error here
        $insert = $this->db->query('products', $data);
        return ($insert == true) ? true : false;
    }
    else{

    }
}
在我运行项目的地方,我得到了这个错误

Type: Error    
Message: Cannot use object of type CI_DB_mysqli_result as array
Filename: C:\xampp\htdocs\index\stock\application\models\Model_products.php
我已经上网寻求解决办法,但我不能解决这个问题


有人能帮我吗?

您可能使用了错误的变量。试试这个:

public function move($data)
{
    $sku = $data['sku'];
    $store = $data['store_id'];
    $sql = "SELECT * FROM products WHERE sku = ? AND store_id = ?";
    $query = $this->db->query($sql, array($data['sku'], $data['store_id']));
    $result_array = $query->result_array();
    if($result_array) {
        $data['qty'] =  $data['qty'] + $result_array['qty'] ;  //Error here
        $insert = $this->db->query('products', $data);
        return ($insert == true) ? true : false;
    }
    else{

    }
}
$query->result_array()将从数据库返回满足查询条件的行数组。如果只需要一行,则必须修改它

public function move($data)
{
    $sku = $data['sku'];
    $store = $data['store_id'];
    $sql = "SELECT * FROM products WHERE sku = ? AND store_id = ?";
    $query = $this->db->query($sql, array($data['sku'], $data['store_id']));

if($query->num_rows() > 0){
    $row = $query->row();  // select only first row of the query result
    $data['qty'] =  $data['qty'] + $row['qty'] ;
    $insert = $this->db->query('products', $data);  // don't know what you are doing here
    return ($insert == true) ? true : false;
}else{
}
}

使用
var\u dump($var)总是很有帮助的或更好地使用调试器。变量$query不存储结果。