(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)
oci_pconnect — Connect to an Oracle database using a persistent connection
$username,$password,$connection_string = null,$encoding = "",$session_mode = OCI_DEFAULTCreates 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 FPM process). See the OCI8 Connection Handling and Connection Pooling section for more information.
usernameThe Oracle user name.
password
The password for username.
connection_stringBağlanılacak Oracle
nesnesini içerir. Ya » Easy Connect dizgesi, veya
tnsnames.ora dosyasındaki Connect Name ya da yerel
Oracle nesnesi olabilir.
Belirtilmezse ya da null
verilirse, PHP bağlanacağı Oracle nesnesini saptamak için
TWO_TASK (Linux) veya LOCAL
(Windows) ve ORACLE_SID gibi ortam değişkenlerini
kullanır.
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:
[//]host_name[:port][/service_name]. With Oracle
[//]host_name[:port][/service_name]. From Oracle
11g, the syntax is:
[//]host_name[:port][/service_name][:server_type][/instance_name].
Futher options were introduced with Oracle 19c, including timeout and
keep-alive settings. Refer to Oracle documentation. Service names can be
found by running the Oracle utility lsnrctl status on the
database servermachine.
The tnsnames.ora file can be in the Oracle Net search
path, which includes
/your/path/to/instantclient/network/admin,
$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.
encodingOracle
sunucusunun 9.2 ve üstü sürümlerini kullanırken,
karakter_kümesi bağımsız değişkenini yeni
bağlantıda kullanılacak bağımsız değişkene göre belirtebilirsiniz. Eğer 9.2
sürümünden daha eski bir Oracle sunucusu kullanıyorsanız bu bağımsız değişken 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.
session_modeThis
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.
Returns a connection identifier or false on error.
Örnek 1 Basic oci_pconnect() Example using Easy Connect syntax
<?php
// 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');
oci_execute($stid);
echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
echo "<tr>\n";
foreach ($row as $item) {
echo " <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : " ") . "</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
?>See oci_connect() for further examples of parameter usage.
Bilginize: 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.