(PHP 7.2 >= 7.2.14, PHP 8, PHP 7 >= 7.3.1, PHP 8, PECL OCI8 >= 2.2.0)
oci_set_call_timeout — 设置数据库调用的毫秒级超时
设置一个超时时间,限制使用此连接的数据库往返的最大时间。
每个 OCI8 操作可能会对 Oracle 的客户端库进行零个或多个调用。这些内部调用可能会对 Oracle 数据库进行零个或多个往返。如果其中任何一个往返时间超过 time_out
毫秒,则操作将被取消,并返回错误给应用程序。
time_out
值适用于每个往返,而不是所有往返时间的总和。在完成每个往返之前或之后,PHP OCI8 中花费的处理时间不计入。
当调用被中断时,Oracle 将尝试清理连接以供重用。此操作允许运行另一个 time_out
周期。根据清理结果,连接可能可重用也可能不可重用。
使用持久连接时,超时值将在 PHP 请求之间保留。
当 OCI8 使用 Oracle 18(或更高版本)客户端库时,oci_set_call_timeout() 函数可用。
connection
一个 Oracle 连接标识符,由 oci_connect()、oci_pconnect() 或 oci_new_connect() 返回。
timeout
PHP 与 Oracle 数据库之间任何单个往返可能花费的最大时间(毫秒)。
示例 #1 设置超时
<?php
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
oci_set_call_timeout($conn, 5000);
?>