2011-11-07 58 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

谢谢,这正是我的代码返回结果。正如我所说的那样,它会返回那里的所有记录。尽管昨晚我添加了一个新选项,但现在是晚上。所以我相当有信心这可能只是一个查询缓存问题,而不是一个编码问题,因为它返回所有其他记录的罚款。但是,感谢迄今为止的提示。 –