Manuel PHP
Précédent |  | Suivant

# oci_connect

(PHP 5)

oci_connect -- Etablit une connexion avec un serveur Oracle

## Description

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

oci_connect() retourne une ressource de connexion, nécessaire à la plupart des appels OCI. `username` est le nom d'utilisateur et `password` est le mot de passe, utilisés durant l'identification. Le troisième paramètre `db`, optionnel, contient le nom de l'instance locale d'Oracle, ou le nom de l'entrée dans le fichier `tnsnames.ora` auquel vous voulez vous connecter. Si le troisième paramètre optionnel `db` n'est pas spécifié, `PHP` va utiliser la variable d'environnement `ORACLE_SID` (Oracle instance) ou `TWO_TASK` (`tnsnames.ora`) pour déterminer la base à laquelle se connecter.

> Note : oci_connect() ne crée pas de nouvelle connexion si une connexion avec les mêmes paramètres a été établie auparavant. Dans ce cas, oci_connect() va retourner la ressource déjà générée. Cela signifie que vous ne pouvez pas utiliser cette fonction pour mener 2 transactions paralelles. Pour établir une connexion distincte, vous devez utiliser la fonction oci_new_connect().

Exemple 1. Exemple avec oci_connect()

`<?php
echo "<pre>";
$db = "";
$c1 = oci_connect("scott", "tiger", $db);
$c2 = oci_connect("scott", "tiger", $db);
function create_table($conn)
{
$stmt = oci_parse($conn, "create table scott.hallo (test varchar2(64))");
oci_execute($stmt);
echo $conn . " created table\n\n";
}
function drop_table($conn)
{
$stmt = oci_parse($conn, "drop table scott.hallo");
oci_execute($stmt);
echo $conn . " dropped table\n\n";
}
function insert_data($conn)
{
$stmt = oci_parse($conn, "insert into scott.hallo
values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
oci_execute($stmt, OCI_DEFAULT);
echo $conn . " inserted hallo\n\n";
}
function delete_data($conn)
{
$stmt = oci_parse($conn, "delete from scott.hallo");
oci_execute($stmt, OCI_DEFAULT);
echo $conn . " deleted hallo\n\n";
}
function commit($conn)
{
oci_commit($conn);
echo $conn . " committed\n\n";
}
function rollback($conn)
{
oci_rollback($conn);
echo $conn . " rollback\n\n";
}
function select_data($conn)
{
$stmt = oci_parse($conn, "select * from scott.hallo");
oci_execute($stmt, OCI_DEFAULT);
echo $conn."----selecting\n\n";
while (oci_fetch($stmt)) {
echo $conn . " [" . oci_result($stmt, "TEST") . "]\n\n";
}
echo $conn . "----done\n\n";
}
create_table($c1);
insert_data($c1); // Insertion d'une ligne via c1
insert_data($c2); // Insertion d'une ligne via c2
select_data($c1); // Résultat 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 d'une ligne via c2
commit($c2); // Validation via c2
select_data($c1); // Le résultat de c2 est retourné
delete_data($c1); // Effacement de toute la table via c1
select_data($c1); // Aucune ligne de trouvée
select_data($c2); // Aucune ligne de trouvée
commit($c1); // Validation via c1
select_data($c1); // Aucune ligne de trouvée
select_data($c2); // Aucune ligne de trouvée
drop_table($c1);
echo "</pre>";
?>`

oci_connect() retourne `FALSE` si une erreur survient.

> Note : Dans les versions de `PHP` antérieures à la version 5.0.0, vous devez utiliser la fonction ocilogon(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_connect(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi oci_pconnect() et oci_new_connect().

Précédent | Sommaire | Suivant
oci_commit | Niveau supérieur | oci_define_by_name