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

相關文章
相關標籤/搜索