PHP oci超时?

PHP oci超时?,php,oracle-call-interface,Php,Oracle Call Interface,我想设置查询的超时时间 $statement = oci_parse($conn, $query); oci_execute($statement); // timeout if this takes over 5 minutes 以前有人问过这个问题,但在11年前一直没有确切的答案 去年我也发现了这个请求 在与Oracle库的接口上不支持查询超时(通过PDO::ATTR_TIMEOUT)。因此,没有直接的用户土地手段来实现这一点 执行此操作的标准方法是执行一个本身有超时的单独进程。你可以这

我想设置查询的超时时间

$statement = oci_parse($conn, $query);
oci_execute($statement); // timeout if this takes over 5 minutes
以前有人问过这个问题,但在11年前一直没有确切的答案

去年我也发现了这个请求

在与Oracle库的接口上不支持查询超时(通过
PDO::ATTR_TIMEOUT
)。因此,没有直接的用户土地手段来实现这一点

执行此操作的标准方法是执行一个本身有超时的单独进程。你可以这样做:

// oci8-exec.php
set_time_limit(300); // 5 minutes
$conn = getDatabaseConnection();
$stmt = oci_parse($conn, $_SERVER['argv'][1]);
oci_execute($stmt);
oci_fetch_all($stmt, $rows);
var_export($rows);
然后在代码中执行以下操作:

$rows = shell_exec('oci8-exec.php "select * from foo"');
显然,您需要进行错误处理、退出代码检查等,以使生产准备就绪。

在与Oracle库的接口上不支持查询超时(通过
PDO::ATTR_TIMEOUT
)。因此,没有直接的用户土地手段来实现这一点

执行此操作的标准方法是执行一个本身有超时的单独进程。你可以这样做:

// oci8-exec.php
set_time_limit(300); // 5 minutes
$conn = getDatabaseConnection();
$stmt = oci_parse($conn, $_SERVER['argv'][1]);
oci_execute($stmt);
oci_fetch_all($stmt, $rows);
var_export($rows);
然后在代码中执行以下操作:

$rows = shell_exec('oci8-exec.php "select * from foo"');
显然,您需要进行错误处理、退出代码检查等,以使生产准备就绪。

看起来您可以用于数据库调用超时


看起来可以用于数据库调用超时