ocilogon
(PHP 3>= 3.0.4, PHP 4 )
ocilogon -- Etablit une connexion à un serveur Oracle
Description
resource
ocilogon ( string username, string password [, string db])
ocilogon() retourne un identifiant de connexion,
nécessaire à la plupart des fonctions oci. Le paramètre
optionnel db peut contenir le nom local
du serveur Oracle, ou bien son nom dans la table d'entrées
tnsnames.ora à laquelle vous voulez vous connecter. Si le troisième
paramètre n'est pas spécifié, PHP utilisera la variable d'environnement
ORACLE_SID (instance Oracle) ou TWO_TASK
(tnsnames.ora) pour déterminer la base à laquelle se connecter.
Les connexions sont partagées, à l'intérieur
d'une même page avec ocilogon(). Cela signifie
que COMMIT et ROLLBACK s'appliquent à toutes les transactions
commencées à l'intérieur d'une même page,
même si vous avez créé de multiples connexions.
Les connexions sont partagées au niveau de la page, lorsque vous utilisez
ocilogon(). Cela signifie que les validations et annulations
s'appliquent à toutes les transactions de la page, même si vous avez
créé de multiples connexions à un même serveur Oracle.
Cet exemple montre comment les connexions sont partagées :
Exemple 1. Exemple avec 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." a créé une table\n\n"; }
function drop_table($conn) { $stmt = ociparse($conn,"drop table scott.hallo"); ociexecute($stmt); echo $conn." a effacé une 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." a inséré dans hallo\n\n"; }
function delete_data($conn) { $stmt = ociparse($conn,"delete from scott.hallo"); ociexecute($stmt,OCI_DEFAULT); echo $conn." a effacé dans hallo\n\n"; }
function commit($conn) { ocicommit($conn); echo $conn." validé\n\n"; }
function rollback($conn) { ocirollback($conn); echo $conn." annulé\n\n"; }
function select_data($conn) { $stmt = ociparse($conn,"select * from scott.hallo"); ociexecute($stmt,OCI_DEFAULT); echo $conn."----selection\n\n"; while (ocifetch($stmt)) echo $conn." <".ociresult($stmt,"TEST").">\n\n"; echo $conn."----fin\n\n"; }
create_table($c1); insert_data($c1); // Insertion avec c1 insert_data($c2); // Insertion avec c2
select_data($c1); // Resultats des insertions select_data($c2);
rollback($c1); // Annulation sur c1
select_data($c1); // Les deux insertions ont été annulées select_data($c2);
insert_data($c2); // Insertion avec c2 commit($c2); // Validation avec c2
select_data($c1); // Le résultat de l'insertion via c2
delete_data($c1); // Effacement de toutes les lignes avec c1 select_data($c1); // Aucune ligne lue select_data($c2); // Aucune ligne lue commit($c1); // Validation avec c1
select_data($c1); // Aucune ligne lue select_data($c2); // Aucune ligne lue
drop_table($c1); print "</PRE></HTML>"; ?>
|
|
Voir aussi
ociplogon() et
ocinlogon().