MysqliDb 库的一些使用简单技巧(php)
一.分页功能
假设接口要接受输入:page, page_limit,key,value,table 来查询 table 中 key like value 的元组中以 page_limit 为 page size 时第 page 页的数据。
要求输出为:{"count" => $count,"row" => $result},其中 count 为总元组数,row 为当前返回页的元组
在 mysqliDb 中,能获取元组计数的方式有如下 3 种:
$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 操作后被赋值的$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;
显然,通过第 3 中方式我们可以很简单地实现上题中的需求
MysqliDb 库的一些使用简单技巧(php)的更多相关文章
- gin使用validator库参数校验若干实用技巧
validator库参数校验若干实用技巧 本文介绍了使用validator库做参数校验的一些十分实用的使用技巧,包括翻译校验错误提示信息.自定义提示信息的字段名称.自定义校验方法等. validato ...
- Win8.1下FreeImage.lib库的配置和简单使用(转)
转自http://www.codeweblog.com/win8-1下freeimage-lib库的配置和简单使用/ 首先,你可以从这里获取FreeImage的完整库文件(访问密码 9a5e). 配置 ...
- PHP 常用函数库和一些实用小技巧
PHP 常用函数库和一些实用小技巧 作者: 字体:[增加 减小] 类型:转载 包括文件读取函式,文件写入函式,静态页面生成函式,目录删除函式等 文件读取函式 //文件读取函式 function ...
- VS调试的简单技巧
学习之路三十二:VS调试的简单技巧 这段时间园子里讲了一些关于VS的快捷键以及一些配置技巧,挺好的,大家一起学习,一起进步. 这段时间重点看了一下关于VS调试技巧方面的书,在此记录一下学习的内容吧 ...
- day-11 python自带库实现2层简单神经网络算法
深度神经网络算法,是基于神经网络算法的一种拓展,其层数更深,达到多层,本文以简单神经网络为例,利用梯度下降算法进行反向更新来训练神经网络权重和偏向参数,文章最后,基于Python 库实现了一个简单神经 ...
- GO的日志库log竟然这么简单!
前言 最近在尝试阅读字节开源RPC框架Kitex的源码,看到日志库klog部分,果不其然在Go原生的log库的基础上增加了自己的设计,大体包括增加了一些格式化的输出.增加一些常用的日志级别等. 一番了 ...
- GitHub开源库排名一百的简单介绍,值得收藏!
GitHub Android Libraries Top 100 简介 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据 GitHub ...
- iOS实用技能扩展-静态库的制作与简单使用
前言:此文是关于静态库的概念描述,如何制作及简单调试使用,不同版本的说明与场景使用. 1.关于库的简介: 库可以分为2种类型 开源库 公开源代码,能看到具体实现 比如SDWebImage.AFNetw ...
- Android事件总线分发库EventBus3.0的简单讲解与实践
Android事件总线分发库EventBus的简单讲解与实践 导语,EventBus大家应该不陌生,EventBus是一款针对Android优化的发布/订阅事件总线.主要功能是替代Intent,Han ...
随机推荐
- 埃氏筛法求素数&构造素数表求素数
埃氏筛法求素数和构造素数表求素数是一个道理. 首先,列出从2开始的所有自然数,构造一个序列: 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1 ...
- JobTracker和TaskTracker
[JobTracker和TaskTracker] 1.JobTracker 对应于 NameNode,TaskTracker 对应于 DataNode. 2.JobTracker是一个master服 ...
- Matlab界面清洗
保持干净清爽的编程界面可以给人以简洁明朗的享受,Matlab可以对涉及到的4个界面进行清洗: ① Clear Figure ; ② Clear Command window; ③ Clear Wor ...
- linux下,MySQL默认的数据文档存储目录为/var/lib/mysql。
0.说明 Linux下更改yum默认安装的mysql路径datadir. linux下,MySQL默认的数据文档存储目录为/var/lib/mysql. 假如要把MySQL目录移到/home/data ...
- 11. Container With Most Water 装水最多的容器
[抄题]: Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ...
- Window Application has "update" key words
Error Qt Creater:console error:Failed to start program. Path or permissions wrong? Description 在使用Qt ...
- gp sql
appendonly -- drop table if exists test_appendonly; -- create table test_appendonly with(appendonly= ...
- java反射机制学习代码
根据 http://www.iteye.com/topic/137944 文档进行学习 代码如下: package reflectTest; import java.lang.reflect.*; i ...
- web api control注册及重写DefaultHttpControllerSelector、ApiControllerActionSelector、ApiControllerActionInvoker(转)
出处:http://www.cnblogs.com/kingCpp/p/4651154.html namespace EWorkpal.WebApi { public class HttpNotFou ...
- [GO]redis的连接
package main import ( "github.com/garyburd/redigo/redis" "fmt" ) var pool *redis ...