ocilogon

ocilogon -- Baut eine OCI-Verbindung auf

Beschreibung

int OCILogon ( string Benutzername, string Passwort [, string Datenbankname])

OCILogon( ) gibt bei erfolgreicher Verbindung einen Verbindungsindex zurück . Bei einem Fehler FALSE . Der optionale dritte Parameter kann auf die lokale Oracleinstanz gesetzt werden oder auf die , zu welcher sich verbunden werden soll . Diese sollte in der tnsnames.ora aufgeführt sein . Wird der dritte Parameter nicht gesetzt nimmt PHP automatisch den Wert aus der Umgebungsvariable ORACLE_SID oder TWO_TASK .

Verbindungen werden gemeinsam wärend eines Skriptes genutzt , wenn OCILogon( ) benutzt wird . Das heisst , dass commits und rollbacks sich auf alle offenen Transaktionen im Skript auswirken , ausser wenn explizit mehrere Verbindungen aufgebaut werden .

Dies Beispiel zeigt , wie die Verbindungen gemeinsam genutzt werden .

Beispiel 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)

 
;

 
/

 
/

 
trägt

 
eine

 
Zeile

 
ein

 
und

 
benutzt

 
dabei

 
c1

 
insert_data($c2)

 
;

 
/

 
/

 
trägt

 
eine

 
Zeile

 
ein

 
und

 
benutzt

 
dabei

 
c2

 
select_data($c1)

 
;

 
/

 
/

 
die

 
Ergebnisse

 
beider

 
Eintragungen

 
wird

 
zurückgegeben

 
select_data($c2)

 
;

 
rollback($c1)

 
;

 
/

 
/

 
Rollback

 
benutzt

 
c1

 
select_data($c1)

 
;

 
/

 
/

 
ein

 
Rollback

 
auf

 
beide

 
Eintragungen

 
select_data($c2)

 
;

 
insert_data($c2)

 
;

 
/

 
/

 
trägt

 
eine

 
Zeile

 
ein

 
und

 
benutzt

 
dabei

 
c2

 
commit($c2)

 
;

 
/

 
/

 
der

 
commit

 
für

 
c2

 
select_data($c1)

 
;

 
/

 
/

 
das

 
Ergebnis

 
der

 
Eintragung

 
über

 
c2

 
wird

 
zurückgegeben

 
delete_data($c1)

 
;

 
/

 
/

 
löschen

 
aller

 
Zeilen

 
über

 
c1

 
select_data($c1)

 
;

 
/

 
/

 
keine

 
Zeile

 
zurückgegeben

 
select_data($c2)

 
;

 
/

 
/

 
keine

 
Zeile

 
zurückgegeben

 
commit($c1)

 
;

 
/

 
/

 
commit

 
für

 
c1

 
select_data($c1)

 
;

 
/

 
/

 
keine

 
Zeile

 
zurückgegeben

 
select_data($c2)

 
;

 
/

 
/

 
keine

 
Zeile

 
zurückgegeben

 
drop_table($c1)

 
;

 
print

 
"

 
/

 
PRE

 
/

 
HTML

 
"

 
;

 
?





Bitte beachte auch OCIPLogon( ) und OCINLogon( ) .