oci_connect -- Establishes a connection to the Oracle server
Description
resource oci_connect ( string username, string password [, string db [, string charset [, int session_mode]]] )
oci_connect() returns a connection identifier
needed for most other OCI calls. The optional third parameter
can either contain the name of the local Oracle instance or the
name of the entry in tnsnames.ora to which
you want to connect.
If the optional third parameter is not specified, PHP uses the
environment variables ORACLE_SID (Oracle
instance) or TWO_TASK
(tnsnames.ora) to determine which database
to connect to.
Parameter session_mode is available since version
1.1 and accepts the following values: OCI_DEFAULT,
OCI_SYSOPER and OCI_SYSDBA.
If either OCI_SYSOPER or
OCI_SYSDBA were specified,
oci_connect() 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.
Note:
If you're using PHP with Oracle Instant Client, you can use easy connect
naming method described here:
http://download-west.oracle.com/docs/cd/B12037_01/network.101/b10775/naming.htm#i498306.
Basically this means you can specify "//db_host[:port]/database_name"
as database name. But if you want to use the old way of naming you
must set either ORACLE_HOME or
TNS_ADMIN.
Note:
The second and subsequent calls to oci_connect()
with the same parameters will return the connection handle returned
from the first call. This means that queries issued against one
handle are also applied to the other handles, because they are the
same handle. This behaviour is demonstrated in
Example 1 below. If you require two handles to be transactionally
isolated from each other, you should use
oci_new_connect() instead.
Using Oracle server version 9.2 and greater, you can
indicate charset parameter, which will be used in the new
connection. If you're using Oracle server < 9.2, this parameter will be ignored
and NLS_LANG environment variable will be used instead.
create_table($c1); insert_data($c1); // Insert a row using c1 insert_data($c2); // Insert a row using c2
select_data($c1); // Results of both inserts are returned select_data($c2);
rollback($c1); // Rollback using c1
select_data($c1); // Both inserts have been rolled back select_data($c2);
insert_data($c2); // Insert a row using c2 commit($c2); // Commit using c2
select_data($c1); // Result of c2 insert is returned
delete_data($c1); // Delete all rows in table using c1 select_data($c1); // No rows returned select_data($c2); // No rows returned commit($c1); // Commit using c1
select_data($c1); // No rows returned select_data($c2); // No rows returned
drop_table($c1); echo "</pre>"; ?>
oci_connect() returns FALSE if an error occured.
Note:
In PHP versions before 5.0.0 you must use ocilogon() instead.
This name still can be used, it was left as the alias of
oci_connect() for downwards compatability.
This, however, is deprecated and not recommended.