消息:数组到字符串的转换

时间:2018-08-16 15:48:12

标签: php codeigniter

我正在尝试从数据库中搜索产品,然后在视图中显示。但这向我显示了一个错误……

A PHP Error was encountered

Severity: Notice

Message: Array to string conversion

Filename: database/DB_active_rec.php

Line Number: 679

这是控制器的代码

function search_prd()
{
    $query = $this->input->post();
    $this->load->model('prd/addprd');
    $prd_search = $this->addprd->prd_search($query);
    $this->load->view('prd_search', ['prd_search' => $prd_search]);
}

这段代码是MODEL

function prd_search($query)
{
    $q = $this->db->from('purchase')
        ->like('item_name', $query)
        ->get();

    return $q->num_rows();
}

1 个答案:

答案 0 :(得分:2)

CI的input->post()是一个包含POST数据的数组。 CI的活动记录like()的第二个参数需要一个字符串。如果要传递单个字段值,则需要访问该索引:

<input name="search_value">

$query = $this->input->post('search_value'); //notate the field being used here

然后您可以在以下位置查询

$this->db->like('column', $query); //query is now a string

或者,如果您打算传递整个数组,则可以使用where_in()

$this->db->where_in('column', $query); //if you assign $query to $this->input->post();