我需要使用oci_connect函数连接到远程oracle数据库; 但是发现经常不稳定
可以使用 oci_new_connect 替换 oci_connect试试 oci_new_connect 没有缓存
----------------------------------------------
(PHP 5, PECL OCI8 >= 1.1.0)
oci_new_connect — 建定一个到 Oracle 服务器的新连接
$username
, string $password
[, string $db
[, string $charset
[, int $session_mode
]]] )oci_new_connect() 创建一个到 Oracle 服务器的新连接并登录。与 oci_connect() 和 oci_pconnect() 不同, oci_new_connect() 不会缓冲连接,总是会返回一个全新的刚打开的连接句柄。这在应用程序需要在两组查询之间实现事务隔离很有用。
可选的第三个参数可以是本地 Oracle 实例的名字或者是在 tnsnames.ora 的条目中的名字。如果没有指定第三个参数, PHP 使用环境变量 ORACLE_SID 和 TWO_TASK 来分别确定本地 Oracle 实例的名字和 tnsnames.ora 的位置。
session_mode
参数自版本 1.1 起可用并接受如下值: OCI_DEFAULT
, OCI_SYSOPER
和 OCI_SYSDBA
。如果指定了 OCI_SYSOPER
或 OCI_SYSDBA
其中之一, oci_new_connect() 将尝试使用外部认证信息建立特权连接。特权连接默认被禁止。要启用,需要将 oci8.privileged_connect 设为 On。
使用 Oracle 客户端库来确定字符集。字符集不需要与数据库的字符集相匹配。如果不匹配,Oracle 会尽可能地将数据从数据库字符集进行转换。因为依赖于字符集,可能不能给出可用的结果。转换也增加一些时间开销。
如果不指定,Oracle 客户端用 NLS_LANG
环境变量来决定字符集。
传递此参数可减少连接时间。
返回顶部