Учебник РНР
Назад Вперёд

OCINLogon

(PHP 3>= 3.0.8, PHP 4)

OCINLogon - устанавливает новое соединение с Oracle.

Описание

int OCINLogon (string username, string password [, string db])

OCINLogon() создаёт новое соединение с БД Oracle 8 и выполняет вход. Необязательный третий параметр может содержать имя локального экземпляра Oracle или имя вхождения в tnsnames.ora, с которым вы хотите соединиться. Если необязательный третий параметр не специфицирован, PHP использует переменные окружения ORACLE_SID (Oracle-экземпляр) или TWO_TASK (tnsnames.ora) для определения того, с какой БД соединяться.

OCINLogon() форсирует создание нового соединения. Это нужно использовать, если вам необходимо изолировать набор транзакций. По умолчанию соединения совместно используются/share на уровне страницы, если применяется OCILogon(), либо на уровне процесса web-сервера, если используется OCIPLogon(). Если у вас имеется несколько соединений, открытых с помощью OCINLogon(), все подтверждения и откаты применяются только к специфицированному соединению.

В примере показано разделение соединений.

Пример 1. OCINLogon
<?php
print "<HTML><PRE>";
$db = "";

$c1 = ocilogon("scott","tiger",$db);
$c2 = ocinlogon("scott","tiger",$db);

function create_table($conn)
{ $stmt = ociparse($conn,"create table scott.hallo (test
varchar2(64))");
  ociexecute($stmt);
  echo $conn." created table\n\n";
}

function drop_table($conn)
{ $stmt = ociparse($conn,"drop table scott.hallo");
  ociexecute($stmt);
  echo $conn." dropped table\n\n";
}

function insert_data($conn)
{ $stmt = ociparse($conn,"insert into scott.hallo 
            values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
  ociexecute($stmt,OCI_DEFAULT);
  echo $conn." inserted hallo\n\n";
}

function delete_data($conn)
{ $stmt = ociparse($conn,"delete from scott.hallo");
  ociexecute($stmt,OCI_DEFAULT);
  echo $conn." deleted hallo\n\n";
}

function commit($conn)
{ ocicommit($conn);
  echo $conn." committed\n\n";
}

function rollback($conn)
{ ocirollback($conn);
  echo $conn." rollback\n\n";
}

function select_data($conn)
{ $stmt = ociparse($conn,"select * from scott.hallo");
  ociexecute($stmt,OCI_DEFAULT);
  echo $conn."----selecting\n\n";
  while (ocifetch($stmt))
    echo $conn." <".ociresult($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);
print "</PRE></HTML>";
?>

См. также OCILogon() и OCIPLogon().


Назад Оглавление Вперёд
OCINewDescriptor Вверх OCINumCols