2011-11-07 59 views
0

我正在使用phpmyadmin並正在使用名爲「profile_types」的表從數據庫中提取信息的某個站點上工作我必須爲新類型添加一行,但該網站並未反映變化。我一直在閱讀和「有查詢緩存」設置爲是所以我想清除緩存,看看是否有幫助。MySQL RELOAD和RESET QUERY CACHE

所以在閱讀後,我試圖使用RESET QUERY CACHEl,但不斷收到有關使用RELOAD的錯誤>因此,在閱讀更多內容後,我無法弄清楚如何使用RELOAD命令。據我所知這是數據庫唯一的用戶帳戶,所以我想它是管理員,並具有必要的權限。我錯過了什麼嗎?另外,你們認爲做RESET QUERY CACHE可能會允許它用新記錄更新網站嗎?我清除了我的瀏覽器緩存,並嘗試了所有這一切,但沒有去,所以這是我的最後一個選擇。

回答

0

查詢緩存用於選擇的結果。它不會「緩存」插入 - 如果查詢被卡入高速緩存中,然後不反映在後續結果中,數據庫將不符合ACID標準。

換句話說,想象一下,如果這是一個銀行數據庫,它「緩存」存款,但確保立即反映提款。你會在透支中溺水。哦......等等......這就是銀行今天的工作方式。

+0

但是填充選項的查詢是SELECT。我手動插入了新記錄。我的SELECT雖然填充表中的選項就像「選擇ptitle,pid從profile_types ORDER BY id ASC」,它不會添加新選項。我讀了更多,並發現如何授予特權,並試圖授予重新加載特權,但它不會讓我。 –

+0

然後添加錯誤檢查所有您的查詢。在BARE MINIMUM你的數據庫調用應該看起來像'$ result = mysql_query($ sql)或者die(mysql_error());'。如果數據不是從數據庫中傳出的,那麼很有可能它首先不會進入數據庫。 –

+0

謝謝,這正是我的代碼返回結果。正如我所說的那樣,它會返回那裏的所有記錄。儘管昨晚我添加了一個新選項,但現在是晚上。所以我相當有信心這可能只是一個查詢緩存問題,而不是一個編碼問題,因爲它返回所有其他記錄的罰款。但是,感謝迄今爲止的提示。 –