запрос воспламенителя кода: как построить этот запрос

Я пытаюсь создать запрос с использованием класса активных записей, который выглядит так:

SELECT * from contacts where account = 1 and (fname like 'k%' or lname like 'k%')

однако я не уверен, как использовать функции для этого.

и идеи?

Вы также можете использовать подобный запрос

 $this->db->like('title', 'match'); // Produces: WHERE title LIKE '%match%' 

И or_like

 $this->db->like('title', 'match'); $this->db->or_like('body', $match); 
 $this->db->where('account', '1'); $this->db->where(' (fname LIKE "k%" OR lname LIKE "k%" ) '); $query = $this->db->get('contacts'); 

Затем просто обработайте $query как обычный результат базы данных Codeigniter.

Yo может всегда запускать его как обычный запрос:

 $sql = "SELECT * from contacts where account = 1 and (fname like ? or lname like ?)"; $query = $this->db->query($sql, array( $like1, $like2)); 

Я чаще использую это, чем активный класс записи, поскольку я увлекаюсь написанием операторов sql.

Вместо обычного запроса вы можете использовать предложение на форуме ellislab https://ellislab.com/forums/viewthread/185983/ Вместо того, чтобы использовать

 $this->db->like('location', $your_string); 

использовать:

 $this->db->where('location LIKE', '%'.$your_string.'%'); 

и or_where вместо or_like .

Вы можете использовать группировку запросов из CI 3.0

 $this->db->select('*')->from('contacts ') ->group_start() ->like('fname', 'k', 'after'); ->or_like('lname', 'k', 'after'); ->group_end() ->where('account', 1) ->get();