oci_set_client_identifier
(PHP 5 >= 5.3.2, PHP 7, PECL OCI8 >= 1.4.0)
oci_set_client_identifier — Задает идентификатор клиента
Описание
$connection
, string $client_identifier
) : 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_identifier
-
Задаваемая пользователем строка до 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() - Задает операцию базы данных