(PHP 5, PECL OCI8 >= 1.1.0)
oci_new_connect — Connect to the Oracle server using a unique connection
$username
, string $password
[, string $connection_string
[, string $character_set
[, int $session_mode
]]] )Establishes a new connection to an Oracle server and logs on.
Unlike oci_connect() and oci_pconnect(), oci_new_connect() does not cache connections and will always return a brand-new freshly opened connection handle. This is useful if your application needs transactional isolation between two sets of queries.
username
The Oracle user name.
password
The password for username
.
connection_string
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: [//]host_name[:port][/service_name]. With Oracle 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.
character_set
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 connection time.
session_mode
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.
Returns a connection identifier or FALSE
on error.
The following demonstrates how you can separate connections.
Örnek 1 oci_new_connect() example
<?php
// create table mytab (mycol number);
function query($name, $c)
{
echo "Querying $name\n";
$s = oci_parse($c, "select * from mytab");
oci_execute($s, OCI_NO_AUTO_COMMIT);
$row = oci_fetch_array($s, OCI_ASSOC);
if (!$row) {
echo "No rows\n";
} else {
do {
foreach ($row as $item)
echo $item . " ";
echo "\n";
} while (($row = oci_fetch_array($s, OCI_ASSOC)) != false);
}
}
$c1 = oci_connect("hr", "welcome", "localhost/orcl");
$c2 = oci_new_connect("hr", "welcome", "localhost/orcl");
$s = oci_parse($c1, "insert into mytab values(1234)");
oci_execute($s, OCI_NO_AUTO_COMMIT);
query("basic connection", $c1);
query("new connection", $c2);
oci_commit($c1);
query("new connection after commit", $c2);
// Output is:
// Querying basic connection
// 1234
// Querying new connection
// No rows
// Querying new connection after commit
// 1234
?>
See oci_connect() for further examples of parameter usage.