PHP 手册
后退 |  | 前进

# oci_pconnect

(PHP 5)

oci_pconnect -- 使用一个持久连接连到 Oracle 数据库

## 说明

resource oci_pconnect ( string username, string password [, string db [, string charset [, int session_mode]]] )

oci_pconnect() 创建一个到 Oracle 服务器的持久连接并登录。持久连接会被缓冲并在请求之间重复使用，可以降低每个页面加载的消耗。一个典型的 PHP 应用程序对于每个 Apache 子进程（或者 PHP FastCGI/CGI 进程）会有一个打开的持久连接到 Oracle 服务器。更多信息见数据库持久连接一节。

> 注: 自 OCI8 扩展库版本 1.1 起，持久 Oracle 连接的生命周期和最大数目可以通过设定以下配置选项来调整：oci8.persistent_timeout，oci8.ping_interval 和 oci8.max_persistent。

可选的第三个参数可以是本地 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。

> 注: 如果 PHP 用的是 Oracle Instant Client，可以用容易的命名连接方法，说明见这里：http://download-west.oracle.com/docs/cd/B12037_01/network.101/b10775/naming.htm#i498306。基本上这意味着可以指定 "//db_host[:port]/database_name" 作为数据库名。但如果想用命名的旧方法则必须设定 `ORACLE_HOME` 或 `TNS_ADMIN` 二者之一。

使用 Oracle 服务器 9.2 或更高版本，可以指定 charset 参数，其将被用于新的连接。如果使用 Oracle 服务器低于 9.2 的版本，本参数将被忽略并以 NLS_LANG 环境变量替代之。

oci_pconnect() 返回连接标识符，出错则返回 `FALSE`。

> 注: 在 PHP 5.0.0 之前的版本必须使用 ociplogon() 替代本函数。该函数名仍然可用，为向下兼容作为 oci_pconnect() 的别名。不过其已被废弃，不推荐使用。

参见 oci_connect() 和 oci_new_connect()。

后退 | 起点 | 前进
oci_password_change | 上一级 | oci_result