(PHP 3 >= 3.0.4, PHP 4, PHP 5)
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. OCILogon <?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().