php - CodeIgniter MYSQLI 获取不同于

标签 php mysql codeigniter mysqli codeigniter-3

将项目上的 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 '!'

它显然会返回所有记录并迭代它们。不知道为什么这两个会如此不同。有人知道为什么会发生这种情况以及如何解决它吗?

最佳答案

$this->db->get_compiled_select() 默认情况下会重置查询生成器,您可以尝试

$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 select 中的第二个参数传递为 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());

关于php - CodeIgniter MYSQLI 获取不同于,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50034194/

相关文章:

php - MySQL、Python - Latin-1/UTF8 编码

Mysql Group By 使用列特定单个值

mysql - cPanel Mysql 错误

php - 未定义的属性 : stdClass codeigniter

php - 从 php mysql* 到 mysqli

php - 如何从具有特殊编码的单词中获取每个字符

php - 如何在 Laravel 5 中创建只向现有表添加列的迁移

mysql - 如何使用超前或滞后获取 mysql 中给定行的上一行或下一行?

php - CodeIgniter 中的手动事务

javascript - 无法使用ajax在codeigniter中显示模态