ocinlogon

(PHP 3>= 3.0.8, PHP 4 )

ocinlogon --  Etablit une nouvelle correction avec un serveur Oracle

Description

resource ocinlogon ( string username, string password [, string db])

ocinlogon() crée une nouvelle connexion à un serveur Oracle et s'identifie. 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.

ocinlogon() force le serveur à établir une nouvelle connexion. Cette fonction ne doit être utilisée que si vous voulez isoler un ensemble de transactions. Par défaut, les connexions sont partagées au niveau de la page, si vous utilisez la fonction ocinlogon() ou bien au niveau du processus web, si vous utilisez ociplogon(). Si vous avez de multiples connexions ouvertes avec ocinlogon(), les validations et annulations ne s'appliquent qu'à la connexion spécifée.

L'exemple ci-dessous montre l'utilisation des connexions séparées.

Exemple 1. Exemple avec 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." a cr&eacute;&eacute; une table\n\n";
}

function
drop_table($conn)
{
$stmt = ociparse($conn,"drop table scott.hallo");
  
ociexecute($stmt);
  echo
$conn." a effac&eacute; 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&eacute;r&eacute; dans hallo\n\n";
}

function
delete_data($conn)
{
$stmt = ociparse($conn,"delete from scott.hallo");
  
ociexecute($stmt,OCI_DEFAULT);
  echo
$conn." a effac&eacute; dans hallo\n\n";
}

function
commit($conn)
{
ocicommit($conn);
  echo
$conn." valid&eacute;\n\n";
}

function
rollback($conn)
{
ocirollback($conn);
  echo
$conn." annul&eacute;\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);

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>";
?>

Voir aussi ocilogon() et ociplogon().