内容读取函数设计思路

C 2018-2-13 9710

从以前开始一直在研究内容读取方案,因为我对代码的要求主要有:

简洁(以最少的代码量实现)

高效(SQL读取效率一定要好)

所以经给不少次改进,最后写出的代码大致是这样的:

function faptopic($mode,$val,$tsort,$tid,$qty){
global $pdo;
return $pdo->query('SELECT * FROM `topic` WHERE '.($mode?'`'.$mode.'`='.$val.' AND':'').' `sort` IN ('.$tsort.') AND `tid` '.($qty?'<= '.$tid.' ORDER BY `tid` DESC LIMIT '.$qty:'IN ('.$tid.')'))->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE)?:array();
}

引入的几个变量分别是:模式、模式值、分类、基点、数量。

全局调用pdo引擎,执行query函数。

mode:如果设置了该项,则读取指定索引列,否则按主键读取。

val:当启用mode时限定的索引列值,例如age=3中,mode='age',val=3。

tsort:要读取的主题分类,也可以用此进行权限控制。

tid:当存在qty时,读取小于等于此基点的qty个值并倒序输出。不存在qty时,读取此基点内所有值。

qty:读取数量限制以及判断开关。

最新回复 (0)