我有一个 web 应用程序,它基本上是一个页面,其中一个表单被分解为选项卡,每个选项卡都包含来自不同数据库表的数据。表单操作指向一个 save.php 脚本,该脚本获取表单数据并将其保存到数据库中。
save.php 脚本的结构使其由多个 SQL INSERT/UPDATE 语句组成,每个数据库表一个。这样做是因为某些表单选项卡会根据用户偏好等隐藏,因此这些语句中的可变数量实际上将随时运行。
有什么方法可以确定所有 SQL 查询何时完成执行,以便将用户重定向到另一个页面?
举个简单的例子,save.php 脚本由几个代码块组成,基本上如下所示:
$updQuery = "UPDATE exampletable SET row=1 WHERE x=y";
try {
$updResult = odbc_exec($connect,$updQuery);
}
catch (RuntimeException $e) {
ExceptionHandlingStuff();
}
通常对于重定向,我只使用这样的元刷新:
<meta http-equiv="refresh" content="10; URL=homepage.php">
我可以将其设置为像 10 秒这样的长时间延迟,以“合理地”确保在刷新开始时所有 SQL 查询都已执行,但这似乎是一个可怕的 hack,它无法提供任何保证并导致用户不必要的延迟,因为查询几乎总是在 10 秒延迟结束之前很久就完成了。
检测页面上的所有 SQL INSERT/UPDATE 语句何时完成执行以便之后立即重定向用户的最佳方法是什么?
作为参考,我使用 PHP 和 ODBC 连接到 4D SQL ANSI-92 数据库。