假設接口要接受輸入: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
$count = self::$_db->getValue(self::$_table_name, "count(*)"); // 這種計數方式不接受任何 where 條件。
//即獲取的 count 爲表 _table_name 中的總元組數。用來作模糊查詢分頁顯然是不可行的接口
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
$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