2013-03-08 60 views
0

對於標題可能沒有意義的內容,我很抱歉。Mysql安全查詢php

我已經創建了一個代碼,其中查詢加載到數據庫並選擇一些行,然後它將循環並將其放入數組中。

SELECT----  
for($i=0;$i<$count;$i++){ 
      $info[] = mysql_fetch_assoc($result); 

因此,這個查詢是非常簡單和快速。

現在,這些查詢是在訪問者進入網絡中的某個站點時完成的。 這一切都很好,但我從不想相信我的訪客。 如果他們多次更新頁面(使用多個瀏覽器,機器人等) 那麼我的查詢每秒會增加很多。這可能會導致崩潰!或者可以嗎?

所以我想知道的是,如何獲取內容,但仍然不讓用戶每秒更新一次頁面。 Cookies檢查最後的數據庫連接?對我有什麼想法?任何建議?

+2

你應該研究緩存。 – diggersworld 2013-03-08 07:55:19

+0

如果內容對某個用戶不是特定的,那麼您可以每隔30秒運行一次查詢並存儲結果。然後你使用這些結果向用戶顯示。 – Alex 2013-03-08 07:56:34

+0

感謝這是一個偉大的想法奇怪,爲什麼我從來沒有想過它 – Kilise 2013-03-08 10:13:30

回答

1

它通常以這種方式工作:

define('THIRTY_SECONDS', 30); 

    if (current_request_cache_time_in_seconds() < THIRTY_SECONDS) { 
     get_request_response_from_cache(); 
    } else { 
     get_request_response_from_php_code(); 
     save_request_response_to_cache(); 
    } 

正如你可以看到,這是一個高層次的功能,這意味着正在執行的實際代碼控制上。在這個例子中,特定頁面的代碼只會每30秒執行一次(除非出現競爭條件)。