ocinlogon
(PHP 3>= 3.0.8, PHP 4 )
ocinlogon -- Logt sich in die Oracle Datenbank ein und erzeugt dabei eine neue
Oracle Session.
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, das es sich um unterschiedliche Verbindungen handelt:
Beispiel 1. OCINLogon <?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().