我有一个使用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');
答案 0 :(得分:0)
如果您正在使用交易,那么您可能需要在插入后提交。如果不这样做,它将回滚到之前的值。没有代码更难以猜测,我认为这可能是问题。