ocilogon

(PHP 3>= 3.0.4, PHP 4 , PHP 5)

ocilogon -- Estabiliza uma conexão com o Oracle

Descrição

resource ocilogon ( string username, string password [, string db] )

ocilogon() retorna um identificador de conexão necessária para a grande maioria das outras funções OCI. O terceiro parâmetro opcional pode conter cada nome local de uma instância Oracle ou o nome colocado no arquivo tnsnames.ora para cada qual onde você queira conectar. Se o terceiro parâmetro não for especificado, PHP usará o nome definido na variável ORACLE_SID (instância Oracle) ou TWO_TASK (tnsnames.ora) para determinar em qual database ele irá conectar.

Conexões são compartilhadas por nível de página quando usando ocilogon(). Isto significa que commits e rollbacks serão aplicados para todas as transações abertas na página, sempre que você tiver que criado múltiplas conexões.

Esse exemplo demonstra como conexões são compartilhadas.

Exemplo 1. ocilogon() example

<?php
print "<PRE>";
$db = "";

$c1 = ocilogon("scott","tiger",$db);
$c2 = ocilogon("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);   // 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);
print
"</PRE>";
?>

Veja também ociplogon() e ocinlogon().