0

我想通过数组从控制器发送 2 个字符串到模型并从 db 获取结果,但是我面临一个问题。

我的控制器是这样的:

$data = array();
if($query = $this->authors_model->get_authors_list(array('author_Type' => array('admin', 'author'))))
{
    $data['authors'] = $query;
}

我的模型:

function get_authors_list($options = array())
{        

    if(isset($options['author_Type']))
    $this->db->where('author_Type', $options['author_Type']);

    $this->db->order_by('author_Id', 'ASC');
    $query = $this->db->get('mg_authors');

    return $query->result();
}

和我得到的错误:

遇到 PHP 错误

严重性:通知

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

文件名:数据库/DB_active_rec.php

行号:427


错误号:1054

'where 子句'中的未知列'Array'

SELECT * FROM ( mg_authors) WHERE author_Type= Array ORDER BY author_IdASC LIMIT 15

文件名:D:\xampp\htdocs\sport\system\database\DB_driver.php

行号:330

4

1 回答 1

3

放置数组时需要使用 WHERE IN。在 CodeIgniter 中,它需要这样做:

$this->db->where_in('author_Type', $options['author_Type']);
于 2013-07-27T21:31:03.473 回答