PHP MySql Select Query不返回更新的记录

时间:2014-02-12 19:24:22

标签: php mysql caching

我有一个使用mysql数据库的简单php站点。

每当我尝试更新或插入记录时,数据库都会反映更改,但是当我尝试第二次运行select查询时,它会返回一个结果集,就好像更新或插入从未发生过一样。

好像它正在缓存结果。当我清除Web浏览器的缓存和cookie并重新加载页面时,select语句会返回更新的记录。

任何建议肯定会受到赞赏。 非常感谢!

页面加载后,调用选择器并返回播放器A和B. 然后我调用deleteplayer删除B,确实从数据库中删除了记录。 我第二次给选择者打电话,它仍然会返回玩家A和B. 如果我清除缓存并重新加载页面,它只返回播放器A.

function selectplayers() {
       $db = new db("mysql-t","user","password","database");
       $id = $db->escape($_REQUEST["id"]);
       $db->execute("SELECT name FROM players WHERE id=$id");
       $db->close();
       //echo result set to page
}

function deleteplayer() {
       $db = new db("mysql-t","user","password","database");
       $id = $db->escape($_REQUEST["id"]);
       $db->execute("DELETE FROM players WHERE id=$id");
       $db->close();
}

标题如下:     header('Cache-Control:no-cache,no-store,must-revalidate');     header('Pragma:no-cache');     标题('过期:0');

1 个答案:

答案 0 :(得分:0)

如果您正在使用交易,那么您可能需要在插入后提交。如果不这样做,它将回滚到之前的值。没有代码更难以猜测,我认为这可能是问题。