【问题标题】:Codeigniter ActiveRecord duplicate,change,execute MySQL queryCodeigniter ActiveRecord 复制、更改、执行 MySQL 查询
【发布时间】:2014-07-15 18:01:40
【问题描述】:

我正在使用 PHP 框架 CodeIgniter 附带的 ActiveRecord 库。我经常发现自己需要使用LIMIT 子句查询数据库的行数,但还需要知道如果我不包含LIMIT 子句我会提取的总行数。例如,当我为许多结果提供分页时,经常会出现这种情况。我一次只想提取 20 条记录,但我还需要知道总共有多少行与我的查询 where 子句匹配。我需要创建 2 个略有不同的查询,一个计数查询:

SELECT * FROM table WHERE [where_clause];

还有一个“分页”查询:

SELECT * FROM table WHERE [where_clause] LIMIT 0,20;

ActiveRecord 是否有一个优雅的解决方案来解决这个问题?似乎没有什么开箱即用的东西可以帮助我。显然我可以用我自己的 PHP 来解决这个问题,但如果我可以利用库的某些方面而不必复制代码等,那将是理想的。

【问题讨论】:

标签: php mysql codeigniter activerecord


【解决方案1】:

回答我自己的问题,最好的方法是像这样使用SQL_CALC_FOUND_ROWS,将此选择调用添加到您的查询中:

 $this->db->select('SQL_CALC_FOUND_ROWS *',false);

然后立即获得计数:

 $count = $this->db->query("SELECT FOUND_ROWS() AS count")->row('count');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多