很抱歉,如果这个问题之前已经被回答过,但我不知道如何轻松地描述它......
我正在使用 PHP 和 MySql 编写一个系统,该系统将允许登录的用户建立一支运动队。我设置了系统,用户可以对某个玩家“出价”,然后将该玩家添加到他们的名单中。写入数据库的代码非常简单并且工作正常:
mysql_query("UPDATE bidpool SET BidExpires='$newbidexpires' WHERE Player='$player'");
mysql_query("UPDATE bidpool SET CurrentBid='$bid' WHERE Player='$player'");
mysql_query("UPDATE bidpool SET TeamName='$NewTeamName' WHERE Player='$player'");
当我检查数据库时,该信息输入正确。
当我加载球队更新名单所在的另一个页面时,这是我使用的代码:
echo "<table>";
$result = mysql_query("SELECT * FROM bidpool WHERE TeamName='$teamname'");
$playerbid = 0;
$i = 0;
$num = mysql_numrows($result);
while ($i < $num) {
$playerroster = mysql_result($result, $i, "Player");
$playerbid = mysql_result($result, $i, "CurrentBid");
$playerexpires = mysql_result($result, $i, "BidExpires");
IF ($time > $playerexpires) {
$playerexpires = "BID WON";
}
echo "<tr>
<td width='30%'>$playerroster</td>
<td width='30%'>$playerbid</td>
<td width='30%'>$playerexpires</td>
</tr>";
$i++;
}
echo "</table">;
问题?当有新的出价时,一切都会很好地写入数据库。当我在 Firefox 中加载名册页面时,它会显示数据库中的名册,甚至几秒钟后也会显示最近的更改。
但是,当我在 Safari 和 Chrome 中加载它时,它显示的是旧版本的名单。即使我清除浏览器缓存,重置浏览器,甚至重新启动计算机,它仍然显示数据库中的旧版本。
这种类型的系统有多个用户在几天内对玩家进行竞价,要求玩家尽快看到最新的竞价及其最近的名单变化。但如果浏览器不配合,它就不起作用。
如果有什么区别的话,该网站是在 WordPress 上运行的。
你认为我做错了什么?为什么这个系统在一种浏览器中可以完美运行,而在另一种浏览器中却不能正常运行?
非常感谢。
最佳答案
问题肯定是缓存问题;您可以通过插入一些额外的 URL 参数来测试这是客户端问题还是 WordPress 问题。
尝试使用 ?extraRandomParameter=changeThisValueEachTime 访问页面。
如果有效,那就是客户端的事情了;否则,您必须更具体地研究 Wordpress 如何缓存(以及如何绕过它)。
关于php - 如何强制浏览器读取更新的数据库信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16889619/