Запросы воспламенителя кода: как построить этот запрос - PullRequest
0 голосов
/ 31 января 2011

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

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

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

а идеи?

Ответы [ 5 ]

3 голосов
/ 31 января 2011
$this->db->where('account', '1');
$this->db->where(' (fname LIKE "k%" OR lname LIKE "k%" ) ');
$query = $this->db->get('contacts');

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

1 голос
/ 02 февраля 2011

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

$this->db->like('title', 'match');

// Produces: WHERE title LIKE '%match%' 

И or_like

$this->db->like('title', 'match');
$this->db->or_like('body', $match); 
0 голосов
/ 05 августа 2015

Вы можете использовать группировку запросов из 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();
0 голосов
/ 10 февраля 2015

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

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

использование:

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

и or_where вместо or_like .

0 голосов
/ 31 мая 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...