强制PHP在继续之前等待数据库操作完成


Force PHP to wait for database action to complete before proceeding

给出如下代码…

$rs = $dbh->prepare("insert some stuff into the database ?");
$rs->Execute(array($somevalues));
header("Location: http://somewebpage.com");
exit;

是否有一种方法可以强制PHP在处理代码的'header'部分之前等待数据库更新?

我有一个更新数据的页面。我想回到一个"新鲜"的页面,这样用户就可以刷新它,而不需要浏览器提示重新提交数据。问题是,重定向和页面加载太快了。它在前一个数据库操作完成之前从数据库加载数据,因此看起来更新并没有发生在重新加载的页面上。我可以添加手动延迟,但那太粗糙了。我希望php代码只是等待,直到数据库更新之前,它做任何其他事情。

Edit - 04Dec11:这似乎是一个简单的浏览器缓存问题。我已经将header("Cache-Control: no-cache, must-revalidate");添加到页面的顶部,现在它按预期工作。

PHP不是异步的,所以所有的操作都会阻塞。包括SQL查询。

可能只是浏览器缓存的问题;)

听起来像是一个可能的复制问题,那是如果您正在使用主->从设置?