(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_pconnectConnect to an Oracle database using a persistent connection


oci_pconnect ( string $username , string $password [, string $connection_string [, string $character_set [, int $session_mode ]]] ) : resource

Creates a persistent connection to an Oracle server and logs on.

Persistent connections are cached and re-used between requests, resulting in reduced overhead on each page load; a typical PHP application will have a single persistent connection open against an Oracle server per Apache child process (or PHP FastCGI/CGI process). See the Persistent Database Connections section for more information.



The Oracle user name.


The password for username.


Contains the Oracle instance to connect to. It can be an » Easy Connect string, or a Connect Name from the tnsnames.ora file, or the name of a local Oracle instance

If not specified, PHP uses environment variables such as TWO_TASK (on Linux) or LOCAL (on Windows) and ORACLE_SID to determine the Oracle instance to connect to.

To use the Easy Connect naming method, PHP must be linked with Oracle 10g or greater Client libraries. The Easy Connect string for Oracle 10g is of the form: 10g is of the form: [//]host_name[:port][/service_name]. With Oracle [//]host_name[:port][/service_name]. From Oracle 11g, the syntax is: 11g, the syntax is:[//]host_name[:port][/service_name][:server_type][/instance_name] . Service names can be found by running the Oracle utility lsnrctl status on the database server machine.

The tnsnames.ora file can be in the Oracle Net search path, which includes $ORACLE_HOME/network/admin and /etc. Alternatively set TNS_ADMIN so that $TNS_ADMIN/tnsnames.ora is read. Make sure the web daemon has read access to the file.


Oracle sunucusunun 9.2 ve üstü sürümlerini kullanırken, karakter_kümesi değiştirgesini yeni bağlantıda kullanılacak değiştirgeye göre belirtebilirsiniz. Eğer 9.2 sürümünden daha eski bir Oracle sunucusu kullanıyorsanız bu değiştirge yok sayılacak, yerine NLS_LANG ortam değişkeni kullanılacaktır.

If not specified, the Oracle Client libraries determine a character set from the NLS_LANG environment variable.

Passing this parameter can reduce the time taken to connect.


This parameter is available since version PHP 5 (PECL OCI8 1.1) and accepts the following values: OCI_DEFAULT, OCI_SYSOPER and OCI_SYSDBA. If either OCI_SYSOPER or OCI_SYSDBA were specified, this function will try to establish privileged connection using external credentials. Privileged connections are disabled by default. To enable them you need to set oci8.privileged_connect to On.

PHP 5.3 (PECL OCI8 1.3.4) introduced the OCI_CRED_EXT mode value. This tells Oracle to use External or OS authentication, which must be configured in the database. The OCI_CRED_EXT flag can only be used with username of "/" and a empty password. oci8.privileged_connect may be On or Off.

OCI_CRED_EXT may be combined with the OCI_SYSOPER or OCI_SYSDBA modes.

OCI_CRED_EXT is not supported on Windows for security reasons.

Dönen Değerler

Returns a connection identifier or FALSE on error.


Örnek 1 Basic oci_pconnect() Example using Easy Connect syntax


// Connects to the XE service (i.e. database) on the "localhost" machine
$conn oci_pconnect('hr''welcome''localhost/XE');
if (!
$conn) {
$e oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);

$stid oci_parse($conn'SELECT * FROM employees');

"<table border='1'>\n";
while (
$row oci_fetch_array($stidOCI_ASSOC+OCI_RETURN_NULLS)) {
    foreach (
$row as $item) {
"    <td>" . ($item !== null htmlentities($itemENT_QUOTES) : "&nbsp;") . "</td>\n";


See oci_connect() for further examples of parameter usage.


Bilginize: Starting with PHP 5.1.2 and PECL OCI8 1.1, the lifetime and maximum number of persistent Oracle connections per PHP process can be tuned by setting the following configuration values: oci8.persistent_timeout, oci8.ping_interval and oci8.max_persistent.

Ayrıca Bakınız