在PHP中运行带有超时的sql查询或在PHP中运行带有How的sql查询,以便在sql查询已经开始时停止查询


Run a sql query with a timeout in PHP or How in PHP, to stop a sql query once already begun?

我阅读了oci_cancel的文档,但对我来说似乎有点模糊。

oci_cancel是否终止服务器上的sql进程?

如果没有,我如何编写脚本执行sql查询,等待片刻,如果查询超过10秒(例如),在服务器中取消查询?

如果这个问题和以前问过的一个问题很相似,但是我没有找到满意的答案,请原谅。

PDO允许您使用"ATTR_TIMEOUT"属性指定查询超时,尽管这完全取决于驱动程序是否支持它。

最终我不得不使用一个不知道它是否是最好的解决方案,但它是各种东西的混合物:

我已经使用类似的东西来保存CSV文件中的查询结果,然后将它们提升到会话变量中。

好吧,我用这种方式制作一个CSV文件与查询的结果,发送查询由PHP执行后台脚本在PHP set_time_limit(10),然后等待一段时间(10秒),直到查询的结果保存在会话变量。如果时间(10秒)过去了,我还没有得到查询保存在会话变量中,我继续做下一个动作。