MysqliDb 库的一些使用简单技巧(php)

一.分页功能

假设接口要接受输入:page, page_limit,key,value,table 来查询 table 中 key like value 的元组中以 page_limit 为 page size 时第 page 页的数据。mysql

要求输出为:{"count" => $count,"row" => $result},其中 count 为总元组数,row 为当前返回页的元组sql

 在 mysqliDb 中,能获取元组计数的方式有以下 3 种:ui

  1. $count = self::$_db->getValue(self::$_table_name, "count(*)"); // 这种计数方式不接受任何 where 条件。
    //即获取的 count 为表 _table_name 中的总元组数。用来作模糊查询分页显然是不可行的接口

  2. self::$_db->pageLimit = $page_limit;
    slef::_db->where(key, value, "like");
    $result = self::$_db->arrayBuilder()->paginate(self::$_table_name, $page, $columns);
    $count = self::$_db->count;//这里获得的 count == count($result),显然不是咱们指望的结果
    //且 $_db->count 中的 count 是在实际查询操做后才被赋值的,在这段代码中便是在 paginate 操做后被赋值的get

  3. $begin = ($page - 1) * $page_limit;
    $result = self::$_db->withTotalCount()->get(self::$_table_name, array($begin, $page_limit), $columns);
    //从第begin条元组开始,返回 page_limit 条元组。并给 totalCount 赋值 limit 限制外的结果即咱们想要的count总数
    $count = self::$_db->totalCount;it

显然,经过第 3 中方式咱们能够很简单地实现上题中的需求table

相关文章
相关标签/搜索