2010-08-05 29 views
-1

我在PHP中設置了一個用於數據庫查詢的緩存系統。最佳格式在PHP中保存mysql結果到文件?

因此,當調用類似「SELECT * FROM table」的查詢時,它會直接從數據庫返回該查詢的緩存結果或結果。

$query = "SELECT * FROM table"; 
[...] 
$data = mysql_query($query); 
[...] 
fwrite($file,json_encode($data)); 
[...] 

問題是我試圖將查詢結果保存到一個文件,我找不到可用的文本格式。我已經嘗試json_encode和序列化,並且它們都返回null或0.有沒有一種格式可以爲此工作,而不必做mysql_fetch_array()然後序列化?

這是我使用JSON得到的錯誤,顯然是因爲我還沒有轉換的結果數組:

Warning: [json] (php_json_encode) type is unsupported, encoded as null 

回答

1

爲什麼不:

  1. 使用原生的MySQL緩存?
  2. 優化查詢,使其工作速度快,不需要緩存?
+0

我不是很熟悉mysql的內置緩存......它會提供與我相同的性能提升想要做什麼?我只是假定它不會因爲仍然需要調用db服務器來返回緩存。 至於優化查詢,這是一個巨大的應用程序,事情儘可能多地進行了優化,但仍然有很多小數據庫調用,我擔心如果流量飆升,一切都會停頓下來。當應用程序大部分完成時我進來了,我可以看到很多方法來優化它,但重新編碼一切現在不是一個真正的選擇。 – 2010-08-05 01:39:42

+0

從此頁面開始:http://dev.mysql.com/doc/refman/5.1/en/query-cache.html – zerkms 2010-08-05 01:51:03

+0

ps:不要忘記,隨着緩存數據的「超級性能」,您會感到頭疼緩存失效 – zerkms 2010-08-05 01:51:31

0

對於您正在處理的問題,這可能不是一個完美的解決方案,但我發現Justin Vincent's ezSQL Class對於處理這種情況非常方便。這個類包含一個緩存函數,它可以滿足你在上面提到的問題中提到的需求。 (獎金是,它處理了很多更鈍的PHP < => MySQL交互。)

+0

嘿,如果你打算打擾我,我至少會欣賞一個解釋。如果我錯了,那就教育我吧! – 2010-08-05 08:57:17

+0

不是我。感謝您的建議,儘管......我會爲下一個項目記下這個班級,但現在整合它已經太遲了。 – 2010-08-06 17:04:43