2014-01-29 103 views
0

我已經包括緩存在我的php腳本..緩存正在發生好但問題是即使數據在數據庫中更改它沒有得到反映..它顯示相同的舊數據.. 我想要的是如果數據庫中的任何數據發生了變化,它應該會得到新的數據。獲取緩存更新數據

<?php 
// Load the cache process i 
include("cache.php"); 
// Connect to database 
include("config.php"); 
mysql_connect($db_host, $db_username, $db_password) or die(mysql_error()); mysql_select_db($db_name) or die(mysql_error()); ?> 
<html> 
<body> 
<h1>Articles</h1> 
<ul> 
<?php // Some query 
$q = mysql_query("SELECT * FROM articles ORDER BY id"); 
while ($r = mysql_fetch_array($q)) { 
  echo '<li><a href="view_article.php?id='.$r['id'].'">'.$r['title'].'</a></li>'; 
} ?> 
</ul> 
</body> 
</html> 
<?php // Save the cache include("cache_footer.php"); ?> 
+0

什麼是cache.php?它是存儲/緩存數據庫的PHP文件?你在哪裏使用這個文件? – thekosmix

回答

0

很多方法在這裏我會去與一個特定的國旗。一個文件,一個變量或什麼。如果你犯了一個數據庫查詢改旗到別的東西,每次需要高速緩存檢查如果該標誌是過期的,如果它是 - >重建緩存

編輯:

可以很簡單,所以你得到這個想法:您查詢

前(或後)做:

file_put_contents('path/to/cache/cache.flag', md5(time())); 
在緩存文件

$ cacheversion =「someHashWhichYouUpdateEverytim eYouBuildANewCache「;

if($cacheversion != file_get_contents(__DIR__.'/cache.flag') { 
    //build a new cachefile and put the latest hash here 
} else { 
    echo $html; 
} 
+0

你能詳細的告訴一下,如果用一點代碼 – namratha

0

很簡單,刪除您的緩存文件時,任何數據更改。 你也可以爲每個標籤/主題創建一個單獨的文件夾,所以你只能這樣做...