# oci_set_client_identifier

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)

oci_set_client_identifier — Définit l'identifiant du client

### Description

oci_set_client_identifier(resource `$connection`, string `$client_id`): bool

Définit l'identifiant du client, utilisé par de nombreux composants de la base de données pour identifier les utilisateurs de l'application qui s'authentifie avec le même nom d'utilisateur de base de données.

L'identifiant du client est enregistré avec la base de données lors du prochain aller-retour 'round-trip' depuis PHP vers la base de données est effectué ; typiquement, l'exécution d'une requête SQL.

L'identifiant peut par la suite être interrogé, par exemple, avec la requête `SELECT SYS_CONTEXT('USERENV','CLIENT_IDENTIFIER') FROM DUAL`. Une vue de l'administration de la base de données, comme la vue `V$SESSION` contient également la valeur. Il peut être utilisé avec `DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE` dans le cadrage d'un tracage. Il peut également être utilisé dans le cadre d'un audit.

La valeur peut être conservée suivants les différentes requêtes des pages qui utilisent la même connexion persistante.

### Liste de paramètres

`connection`

  Un identifiant de connexion Oracle, retourné par la fonction oci_connect(), oci_pconnect() ou la fonction oci_new_connect().

`client_id`

  Chaîne choisie par l'utilisateur jusqu'à 64 octets de long.

### Valeurs de retour

Cette fonction retourne `true` en cas de succès ou `false` si une erreur survient.

### Exemples

Exemple #1 Définit l'identifiant du client comme l'utilisateur de l'application

`<?php
// Retrouve le nom utilisé pour l'identification de l'utilisateur de l'application
session_start();
$un = my_validate_session($_SESSION['username']);
$c = oci_connect('myschema', 'welcome', 'localhost/XE');
// Informe Oracle sur cet utilisateur
oci_set_client_identifier($c, $un);
// Le prochain aller-retour (round-trip) vers la base de données validera cet identifiant
$s = oci_parse($c, 'select mydata from mytable');
oci_execute($s);
// ...
?>`

### Notes

Attention

# Allers-retours

Quelques fonctions OCI8 nécessitent des allers-retours avec la base de données. Ces allers-retours peuvent être évités lors de l'utilisation de requêtes dont le résultat est mis en cache.

### Voir aussi

- oci_set_module_name() - Définit le nom du module
- oci_set_action() - Définit le nom de l'action
- oci_set_client_info() - Définit l'information concernant le client
- oci_set_db_operation() - Définit l'opération de base de données