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(
)
.