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

MrV*_*mes 2 php redirect pdo

鉴于此类代码......

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

有没有办法强制PHP在处理代码的"标题"部分之前等待数据库更新?

我有一个更新数据的页面.我想返回一个"新鲜"页面,以便用户可以刷新它而不需要浏览器提示重新提交数据.问题是,重定向和页面加载太快.它在先前的数据库操作完成之前从数据库加载数据,因此看起来更新未在重新加载的页面上发生.我可以添加手动延迟,但这太粗糙了.我希望php代码只是等到数据库更新后才能执行其他操作.

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

Nik*_*kiC 9

PHP不是异步的,因此所有操作都将被阻止.包括SQL查询.还有其他一切必须在这里发生.