把靜態變數作為Cache使用_PHP教程

來源:互聯網
上載者:User
我猜你們肯定都碰到過以下的情況
我有兩個表,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就成為了一個緩衝形式的東西,在某些情況下,可以大大的降低查詢的次數,避免重複的查詢


http://www.bkjia.com/PHPjc/445105.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/445105.htmlTechArticle我猜你們肯定都碰到過以下的情況 我有兩個表,magazine(雜誌資訊)和subscibe(訂閱資訊),在subscibe表內我有一個magazine_id來和magazine表內...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.