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

标签 php redirect pdo

给定一些这样的代码......

$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/

相关文章:

php - 与 Laravel 在处理数百万条记录时使用 block 的普通查询构建器相比,Laravel Eloquents 和使用 block 是否更慢?

c++ - c++ 重定向输入

jquery - jquery ajax重定向成功后或取消回调不会被调用

javascript - 将 Javascript 变量发送到文件中 PHP 的函数参数中?

php - WordPress wp-admin 面板奇怪的行为

php - 断言 HTTP 状态代码为 200 而不是 500 失败

java - session 超时后重定向到前一个用户上次访问的页面

php - 按不同表的 SUM(列) 排序 - FetchAll 仅返回第一个结果

php - 锁表sql+php PDO

php - 使用 PHP 从 MySQL 数据库中提取 ID 号