Beschreibung
int
OCINLogon
( string username, string password [, string db])
OCINogon(
)
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
.
OCINLogon(
)
erzeugt
eine
neue
Verbindung
mit
einer
neuen
Oracle
Session
,
dies
ist
zum
Beispiel
erforderlich
,
wenn
man
mit
voneinander
getrennten
Transaktionen
arbeitet
.
Normalerweise
wird
die
Oracle
Session
gemeinsam
genutzt
,
wenn
man
OCILogon(
)
oder
auf
Webserverebene
OCIPLogon(
)
.
Wenn
man
allerdings
unterschiedliche
Verbindungen
mit
OCINLogon(
)
öffnet
,
beeinflussen
sich
die
Commits
und
Rollbacks
der
einzelnen
Datenbankverbindungen
nicht
.
Dieses
Beispiel
zeigt
,
dass
es
sich
um
unterschiedliche
Verbindungen
handelt
:
Beispiel
1
.
?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
.
"
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)
;
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
"
;
?
|
|
Bitte
beachten
OCILogon(
)
und
OCIPLogon(
)
.