oci_new_collection
oci_new_cursor
Funções para OCI8
PHP Manual

# oci_new_connect

(PHP 5, PECL OCI8 >= 1.1.0)

oci_new_connect — Connect to the Oracle server using a unique connection

### Descrição

resource oci_new_connect ( string `$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.

### Parâmetros

`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`

  Com o Oracle server 9.2 e seguintes, você pode indicar o parâmetro `charset`, que será utilizado na nova conexão. Se você estiver utilizando Oracle server < 9.2, este parâmetro será ignorado e a variável de ambiente NLS_LANG deverá ser utilizada.

`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.

### Valor Retornado

Returns a connection identifier or `FALSE` on error.

### Exemplos

The following demonstrates how you can separate connections.

Exemplo #1 oci_new_connect() example

`<?php
echo "<html><pre>";
$db = "";
$c1 = oci_connect("scott", "tiger", $db);
$c2 = oci_new_connect("scott", "tiger", $db);
function create_table($conn)
{
$stmt = oci_parse($conn, "create table scott.hallo (test
varchar2(64))");
oci_execute($stmt);
echo $conn . " created table\n\n";
}
function drop_table($conn)
{
$stmt = oci_parse($conn, "drop table scott.hallo");
oci_execute($stmt);
echo $conn . " dropped table\n\n";
}
function insert_data($conn)
{
$stmt = oci_parse($conn, "insert into scott.hallo
values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
oci_execute($stmt, OCI_DEFAULT);
echo $conn . " inserted hallo\n\n";
}
function delete_data($conn)
{
$stmt = oci_parse($conn, "delete from scott.hallo");
oci_execute($stmt, OCI_DEFAULT);
echo $conn . " deleted hallo\n\n";
}
function commit($conn)
{
oci_commit($conn);
echo $conn . " committed\n\n";
}
function rollback($conn)
{
oci_rollback($conn);
echo $conn . " rollback\n\n";
}
function select_data($conn)
{
$stmt = oci_parse($conn, "select * from scott.hallo");
oci_execute($stmt, OCI_DEFAULT);
echo $conn . "----selecting\n\n";
while (oci_fetch($stmt)) {
echo $conn . " <" . oci_result($stmt, "TEST") . ">\n\n";
}
echo $conn . "----done\n\n";
}
create_table($c1);
insert_data($c1);
select_data($c1);
select_data($c2);
rollback($c1);
select_data($c1);
select_data($c2);
insert_data($c2);
commit($c2);
select_data($c1);
delete_data($c1);
select_data($c1);
select_data($c2);
commit($c1);
select_data($c1);
select_data($c2);
drop_table($c1);
echo "</pre></html>";
?>`

### Notas

> Nota: In PHP versions before 5.0.0 you must use ocinlogon() instead. The old function name can still be used in current versions, however it is deprecated and not recommended.

### Veja Também

- oci_connect() - Connect to an Oracle database
- oci_pconnect() - Connect to an Oracle database using a persistent connection

oci_new_collection
oci_new_cursor
Funções para OCI8
PHP Manual