查詢快取檔案在ecshop/upload/temp/query_cache目錄下面
在ecshop/upoad/下面寫一個測試檔案test1.php教學,用來測試它的查詢快取。
程式碼如下:
Php程式碼
1. 2. //前面三句主要是做些初始化工作,讓我可以用ecshop裡面的類別函式庫函數等
3. define('IN_ECS', true );
4. define('ECS_ADMIN', true);
5. require(dirname(__FILE__) . '/includes/init.php');
6. /*******
7. 這裡的GetALLCached函數裡面帶了一個sql語句的參數,
8. 這裡可以先簡單的把這個函數理解成執行sql查詢取得結果的運算。
9. *******/ $article_array = $db->GetALLCached("SELECT article_id, title FROM " . $ecs->table("article") . " WHERE cat_id != 0 AND is_open = 1 AND open_type = 0 ORDER ESC 70 月");
11.
13. //印出的陣列結果如下
14. /*
15. Array
18 . (
19. [article_id] => 35
20. )
22.
23. [1] => Array
24. article_id] => 34
26. [title] => 3G知識普及
27. )
27.
30. (
31. [article_id] => ] => 手機遊戲下載
33. )
34.
35. [3] => [article_id] => 31
38. [title] =>諾基亞6681手機廣告欣賞
39 . )
40.
41. */
42. ?>
1. 1273944294a:4:{i:0;a:2:{s:10:"article_id";s:2:"35";s:5:"title";s:27:" 「沃」的世界我做主";}i:1;a:2:{s:10:"article_id";s:2:"34";s:5:"title";s:14:"3G知識普及";}i:2;a:2:{s:10:"article_id";s:2:"32";s:5:"title";s:18:"手機遊戲下載";}i: 3;a:2:{s:10:"article_id";s:2:"31";s:5:"title";s:31:"諾基亞6681手機廣告欣賞";}}
發現是一串經過什麼處理的東西(其實是經過serialize函數處理)
這個sqlcache裡面的東西其實就是剛才印出來的print_r($article_array)的結果。
在剛才的test1.php檔案中使用了$db->GetALLCached()這個函數
它來自ecshop/upload/includes/cls_mysql教學.php檔案中
GetALLCached()該函數會呼叫到2個實際來處理快取(就是剛才的sqlcache檔)的函數。
第一個函數是setSqlCacheData
Php程式碼
1.
2. /*
3. 設定查詢快取的函數,如果GetALLCached函數參數中結果的被程式碼的,此函數的作用是將sql取得的結果陣列經過序列化以後儲存在某個路徑下方
4. */
5.函數setSqlCacheData($result, $data)
6. {
7. if ($result[) .
9. @file_put_contents ($result['filename'], '' .time() .serialize($data));
10。 清除統計儲存();
11。 }
12. }
第二個函數是getSqlCacheData
Php代碼
1. /*******
2.
3. 此函數的主要功能是從sqlcache資料庫查詢快取檔案中將序列化過的檔案還原。
4. 這樣就如果再執行某條sql語句,該sql語句的結果已經被快取下來,就不用再去資料庫查詢了,直接去快取檔案中讀取。
5. ******/
函數 getSqlCacheData($sql, $cached = '')
7. {
8. $sql = 修剪($sql);
9.
10。
11。 $this->cache_data_dir 。
12。
14。 {
16。
17。
18。 FIRST' && $this->table_lastupdate($this- >get_table_name ($sql)) > $filetime))
20。 {
21。
22。 $結果['資料'] = @unserialize($data);
26。 {
28。
29。 {
32。
33。 其他
37。 $結果['storecache'] = 真;
39。 .php.cn)!