• 技术文章 >php教程 >php手册

    把静态变量作为Cache使用

    2016-06-13 11:21:47原创388
    我猜你们肯定都碰到过以下的情况
    我有两个表,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就成为了一个缓存形式的东西,在某些情况下,可以大大的降低查询的次数,避免重复的查询
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:不定数量表单生成缩略较长 下一篇:加速你的页面--数据压缩
    PHP编程就业班

    相关文章推荐

    • SSI使用详解(二)• PHP应用程序架构浅谈• 基于php-fpm 参数的深入理解• PHP源码之explode使用说明• php.ini 中文版

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网