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 エラーが発生しました

重大度: 通知

メッセージ: 配列から文字列への変換

ファイル名: database/DB_active_rec.php

ライン番号: 427


エラー番号: 1054

「where句」の不明な列「配列」

SELECT * FROM ( mg_authors) WHERE author_Type= 配列 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 に答える