程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 把靜態變量作為Cache使用

把靜態變量作為Cache使用

編輯:關於PHP編程

我猜你們肯定都碰到過以下的情況
我有兩個表,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就成為了一個緩存形式的東西,在某些情況下,可以大大的降低查詢的次數,避免重復的查詢


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved