easyswoole mysqli 分页
正确用法
<?php
$table_name = 'xsk_test';
$page=3;
$page_size=20;
$db->where('status', 1);
$db->withTotalCount();
$data = $db->get($table_name,[($page-1)*$page_size,$page_size],'*');
$count = $db->getTotalCount();
错误用法
<?php
$table_name = 'xsk_test';
$page=3;
$page_size=20;
$db->where('status', 1);
$data = $db->get($table_name,[($page-1)*$page_size,$page_size],'*');
$count = $db->count();// 这儿的count的where条件会消失
mysqli的源码
count是再次调用了get的方法 源码位置
/**
* 聚合-计算总数
* @param string $tableName 表名称
* @param string|null $filedName 字段名称
* @return mixed
* @throws ConnectFail
* @throws PrepareQueryFail
*/
public function count($tableName, $filedName = null)
{
if (is_null($filedName)) {
$filedName = '*';
}
$isFetch = $this->isFetchSql;
$retval = $this->get($tableName, null, "COUNT({$filedName}) as retval");
if ($isFetch || $retval instanceof Mysqli) {
return $retval;
}
return $retval ? $retval[0]['retval'] : false;
}