oci_new_collection
oci_new_cursor
OCI8
PHP Manual

# oci_new_connect

(PHP 5, PECL oci8:1.1-1.2.4)

oci_new_connect — Устанавливает новое соединение с сервером Oracle

### Описание

resource oci_new_connect ( string `$username` , string `$password` [, string `$db` [, string `$charset` ]] )

oci_new_connect() создает новое соединение с сервером Oracle. Необязательный третий параметр может содержать имя локального экземпляра Oracle или имя сервера, указанного в tnsnames.ora. Если параметр `db` не указан, PHP будет использовать переменные ORACLE_SID и TWO_TASK для определения имени локального экземпляра Oracle и местонахождения файла tnsnames.ora соответственно.

Если вы используете сервер Oracle версии 9.2 и выше, то вы можете указать кодировку, которая будет использована в новом соединении. Кодировка указывается в параметре `charset` . Если же вы используете версии сервера Oracle младше 9.2, то этот параметр будет проигнорирован, а вместо него будет использована переменная окружения NLS_LANG.

oci_new_connect() принудительно создает новое соединение. Это может быть использовано в том случае, если вы хотите изолировать набор транзакций. По умолчанию, новое соединение не создается в том случае, если соединение с такими параметрами уже было создано, поэтому oci_connect() и oci_pconnect() вернут идентификатор уже существующего соединения. Но oci_new_connect(), в отличие от них, всегда создает новое соединение.

Этот пример демонстрирует разделение соединений.

Пример #1 Пример использования ocinlogon()

`<?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>";
?>`

В случае ошибки oci_new_connect() возвращает `FALSE`.

> Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocinlogon(). В PHP 5.0.0 и выше ocinlogon() является алиасом oci_new_connect(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

См. также oci_connect() и oci_pconnect().

oci_new_collection
oci_new_cursor
OCI8
PHP Manual