给定一些这样的代码......
$rs = $dbh->prepare("insert some stuff into the database ?");
$rs->Execute(array($somevalues));
header("Location: http://somewebpage.com");
exit;
有没有办法强制 PHP 在处理代码的“ header ”部分之前等待数据库更新?
我有一个更新数据的页面。我想返回到“新鲜”页面,以便用户可以刷新它而浏览器不会提示重新提交数据。问题是,重定向和页面加载太快了。它在上一个数据库操作完成之前从数据库加载数据,因此看起来更新没有发生在重新加载的页面上。我可以添加一个手动延迟,但这太粗糙了。我希望 php 代码在执行任何其他操作之前简单地等待数据库更新。
编辑 - 04Dec11:这似乎是一个简单的浏览器缓存问题。我已将 header("Cache-Control: no-cache, must-revalidate");
添加到页面顶部,它现在按预期工作。
最佳答案
PHP 不是异步的,所以所有的操作都是阻塞的。包括 SQL 查询。这里一定有其他事情发生。
关于php - 强制 PHP 在继续之前等待数据库操作完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8367590/