Задаёт идентификатор клиента

# oci_set_client_identifier

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

oci_set_client_identifier — Задаёт идентификатор клиента

### Описание

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

Устанавливает идентификатор клиента, используемый различными компонентами базы данных для идентификации различных пользователей тонких клиентов, которые авторизуются в базе данных как один пользователь.

Идентификатор клиента регистрируется в базе данных во время очередного запроса от PHP, например, когда запускается SQL выражение.

Идентификатор может быть извлечён, например с помощью `SELECT SYS_CONTEXT('USERENV','CLIENT_IDENTIFIER') FROM DUAL`. Административное представление базы данных, такое как `V$SESSION`, также содержит это значение. Его можно использовать совместно с `DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE` для трассировки и аудита.

Значение может сохраняться между запросами страниц, которые используют одно и то же постоянное соединение.

### Список параметров

`connection`
  Идентификатор соединения Oracle, который возвращают функции oci_connect(), oci_pconnect() или oci_new_connect().
`client_id`

  Задаваемая пользователем строка до 64 байт.

### Возвращаемые значения

Функция возвращает `true`, если выполнилась успешно, или `false`, если возникла ошибка.

### Примеры

Пример #1 Установка идентификатора клиента для пользователя

    <?php

    // Найдём логин пользователя
    session_start();
    $un = my_validate_session($_SESSION['username']);
    $c = oci_connect('myschema', 'welcome', 'localhost/XE');

    // Сообщим его базе данных
    oci_set_client_identifier($c, $un);

    // Следующий запрос к БД заодно установит идентификатор
    $s = oci_parse($c, 'select mydata from mytable');
    oci_execute($s);

    // ...

    ?>

### Примечания

Предостережение

# Совет по полному сканированию таблицы (roundtrip)

Ряд OCI8-функции вызывают полное сканирование таблицы (roundtrip). Функции не сканируют таблицы полностью для тех запросов, в которых включено кеширование результатов в базе данных.

### Смотрите также

- oci_set_module_name() - Задаёт имя модулю
- oci_set_action() - Задаёт имя для действия
- oci_set_client_info() - Задаёт информацию о клиенте
- oci_set_db_operation() - Задаёт операцию базы данных

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open