通过数组将2个字符串传递给codeigniter中的where子句

时间:2013-07-27 21:25:15

标签: arrays codeigniter where-clause

我想通过数组从控制器发送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错误

     

严重性:注意

     

消息:数组到字符串转换

     

文件名:database / DB_active_rec.php

     

行号:427


  

错误号码:1054

     

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

     

SELECT * FROM(mg_authors)WHERE author_Type =数组ORDER BY   author_Id ASC LIMIT 15

     

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

     

行号:330

1 个答案:

答案 0 :(得分:3)

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

$this->db->where_in('author_Type', $options['author_Type']);