最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
把静态变量作为Cache使用
时间:2008-03-12 编辑:简简单单 来源:一聚教程网
我猜你们肯定都碰到过以下的情况
我有两个表,magazine(杂志信息)和subscibe(订阅信息),在subscibe表内我有一个magazine_id来和magazine表内的编号关联
现在我要做一个浏览订阅信息的列表,这个列表内有一列是显示杂志名称的(magazine表的name字段),有一种办法是使用join在这两个表之间做一个关联,把magazine_id都替换成为name,但是这个列表是一个搜索结果,sql查询语句是拼接而成的,假如再加上join,拼接sql的逻辑会变得有点复杂,所以还是简单的弄一个select * from subscibe where ....,然后把结果集内的magazine_id拿来查询会比较简单一点,这又出现另外的问题就是我不想在我的程序里出现过多的重复查询,比如结果集内有10条数据都是关于同一个magazine_id,我就会多出9条重复的查询,于是我决定这样干
function MagazineInfoById($magazine_id){
global $db;
static $magazine_info;
if (!isset($magazine_info[$magazine_id])){
$magazine_info[$magazine_id] = $db->getRow('select * from magazine where id = '. $magazine_id);
}
return $magazine_info[$magazine_id];
}
while (....){
$magazine_info = MagazineInfoById($magazine_id);
.....
}
MagazineInfoById()内的静态变量$magazine_info就成为了一个缓存形式的东西,在某些情况下,可以大大的降低查询的次数,避免重复的查询
-
上一个: 发一个刚编的暴力版/温柔版中文截取函数
-
下一个: PHP中的(伪)多线程与多进程
相关文章
- 浅谈virtual、abstract方法和静态方法、静态变量理解 04-19
- java static 静态变量初始化 06-04
- c static静态变量用法 05-06
- 静态变量是有顺序的! 04-28
- PHP导出数据超时的优化建议解读 10-31
- PHP之mysql位运算解析 10-31