OCILogon

OCILogon -- Establece la conexión con Oracle

Descripción

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

OCILogon( ) devuelve el identificador de conexión necesario en la mayoria de las funciones OCI . El tercer parámetro , que es opcional , puede contener el nombre de la instancia a Oracle o el nombre dado en el fichero tnsnames.ora de la base de datos a la que nos queremos conectar . Si este parámetro no se especifica , PHP usa la variable de entorno ORACLE_SID ( Oracle instance ) o TWO_TASK (tnsnames.ora ) para determinar la base de datos con la que queremos conectar .

Las conexiones son compartidas a nivel de página cuando usemos OCILogon( ) . Lo cual significa que los " commits " y "rollbacks " son aplicadas a todas las transacciones abiertas en la página , incluso si usted ha creado conexiones múltiples .

Este ejemplo demuestra como son compartidas las conexiones .

Ejemplo 1 .

 
?php

 
print

 
"

 
HTML

 
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

 
.

 
"

 
commited\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

 
/

 
HTML

 
"

 
;

 
?