這裡的快取型別是file
1 第乙個例子:這裡舉例獲取**的文章導航,當使用者第一次訪問時是從資料庫裡查詢資料,然後生成快取檔案,再次訪問時直接從快取裡取資料(這也是最常見的快取應用)
主頁的控制器:
public function index()
else
//..省略其他資料
}
無論是更新,新增還是刪除,如果有快取直接重新設定快取值即可
對應控制器:
public function add()
exit(json_encode(array('code'=>1,'msg'=>'新增成功')));
} }}
ps:當乙個使用者第一次訪問此頁面是從資料庫裡查詢,再生成快取,下次,無論是這個使用者還是其他使用者(不論是不是第一次訪問)都是從快取裡取出資料;
2 第二個例子:使用者第一次訪問某篇文章時,閱讀量加 +1 ,一段時間內再次訪問閱讀量 +1 ,過了這段時間這個使用者再次訪問閱讀量才能再次 +1
如果單純的使用第乙個例子的方法,那麼結果就是:當第乙個使用者訪問這篇文章後閱讀量+1,而下次或者其他使用者訪問時就直接訪問快取檔案,閱讀量也不會+1(實際要的效果是其它使用者訪問時閱讀量要+1),顯然這個效果不是我們想要的。
原理:可以在使用者第一次訪問時,生成乙個有存在時間(例如5分鐘)的cookie,過了這段時間,就是這個cookie消失的時候再次訪問才會+1(可以開啟csdn的一篇文章檢視,連續重新整理檢視閱讀量,並沒有改變,而等待一段時間後再次重新整理閱讀量會+1,就類似於這種效果)
控制器:details.php
public function details()
}else
$this->assign('article',$article);
return $this->fetch();}}
ps:這裡的cookie的名是文章的id,值可以隨便 tp5快取使用
引入 usethink cache 使用 options 快取型別為file type file 快取有效期為永久有效 expire 0,快取字首 prefix think 指定快取目錄 path runtime cache cache connect options if cache has th...
tp5框架原理詳解 TP5框架安全機制例項分析
防止sql注入 1 查詢條件盡量使用陣列方式,具體如下 wheres array wheres account account wheres password password user where wheres find 2 如果必須使用字串,建議使用預處理機制,具體如下 user d useri...
TP5事務操作簡明例項
如果乙個操作會改變資料庫多處資訊,並且這些資訊是密切相關的,為了確保每一處改動都是成功的,如果其中一處改動不成功,就將其它改動撤銷,以保證資料 事務 的完整性。比如 你給我轉賬10000塊,需要把你的餘額減10000,我的加10000,如果萬一我的餘額寫入失敗,那麼理應你的餘額不變,不然這10000...