Manuel PHP

Précédent

 

Suivant

OCILogon

OCILogon -- Etablit une connexion à un serveur Oracle

Description

int OCILogon(string username, string password, string [ORACLE_SID]);

OCILogon() retourne un identifiant de connexion, nécessaire à la plus part des fonctions OCI. Si l'option ORACLE_SID n'est pas précisé, PHP utilise la variable d' environnement ORACLE_SID pour déterminer le serveur de connexion. Les connexions sont partagées dans une même page avec OCILogon(). Cela signifie que commits et rollbacks s'appliquent à toutes les transactions commencées sur une même page, même si vous avez créé de multiples connexions.

Cet exemple montre comment les connexions sont partagées :

Exemple 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(32))");
  ociexecute($stmt);
  echo $conn." Table créée\n\n";
}

function drop_table($conn)
{ $stmt = ociparse($conn,"drop table scott.hallo");
  ociexecute($stmt);
  echo $conn." table effacée\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." 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."----selecting\n\n";
  while (ocifetch($stmt))
    echo $conn." <".ociresult($stmt,"TEST").">\n\n";
  echo $conn."----fini\n\n";
}

create_table($c1);
insert_data($c1);   // Insertion d'une ligne avec c1
insert_data($c2);   // Insertion d'une ligne avec c2

select_data($c1);   // Les résultats des deux insertions sont retournés
select_data($c2);   

rollback($c1);      // Annulation avec c1

select_data($c1);   // Les résultats des deux insertions sont annulés
select_data($c2);   

insert_data($c2);   // Insertion d'une ligne avec c2
commit($c2);        // Validation avec using c2

select_data($c1);   // Le résultat de c2 est retourné

delete_data($c1);   // Effacement de toutes les lignes avec c1
select_data($c1);   // aucune ligne n'est retournée
select_data($c2);   // aucune ligne n'est retournée
commit($c1);        // Validation avec c1

select_data($c1);   // aucune ligne n'est retournée
select_data($c2);   // aucune ligne n'est retournée


drop_table($c1);
print "</PRE></HTML>";
?>

Voir aussi OCIPLogon() et OCINLogon().

Précédent

Sommaire

Suivant

OCIBindByName

Chapitre

OCIPLogon

Hébergé
par