CodeIgniter MYSQLI отличается от - PullRequest
0 голосов
/ 26 апреля 2018

Обновление файла CRUD в проекте (я его не писал) с CI 1 до CI 3. Кажется, он работает и вытягивает наборы записей, но в самом конце удаляет функцию ограничения.Вот пример того, что происходит.Насколько я понимаю, get_compiled_select () и get () должны использовать одну и ту же строку выбора, но этого не происходит.См. Ниже / Пояснения, пожалуйста.

$this->db->limit($options['limit'], $options['offset']);
print($this->db->get_compiled_select());
$query = $this->db->get();  //Seems to be dropping limit.
print($this->db->last_query());

Это приводит к:

SELECT * FROM `students` WHERE surname LIKE '%' ESCAPE '!' OR fname LIKE '%' ESCAPE '!' LIMIT 24
SELECT * FROM `students` WHERE surname LIKE '%' ESCAPE '!' OR fname LIKE '%' ESCAPE '!'

И, очевидно, возвращает все записи и перебирает их.Не уверен, почему эти два будут такими разными.Кто-нибудь знает, почему это происходит и как это исправить?

1 Ответ

0 голосов
/ 26 апреля 2018

$ this-> db-> get_compiled_select () По умолчанию сбрасывает Query Builder, вы можете попробовать

$this->db->limit($options['limit'], $options['offset']);
print($this->db->get_compiled_select()); // Query Builer resets here
$query = $this->db->get('mytable',limit,offset);  //Seems to be dropping limit.
print($this->db->last_query());

или вы можете передать второй параметр в get_compiled, выбрав FALSE

$this->db->limit($options['limit'], $options['offset']);
print($this->db->get_compiled_select('MyTable',FALSE)); // 
$query = $this->db->get('mytable',limit,offset);  limit.
print($this->db->last_query());
...