oci_set_client_identifier
(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)
oci_set_client_identifier — Sets the client identifier
說明
$connection
, string $client_id
): boolSets the client identifier used by various database components to identify lightweight application users who authenticate as the same database user.
The client identifier is registered with the database when the next 'round-trip' from PHP to the database occurs, typically when an SQL statement is executed.
The identifier can subsequently be queried, for example
with SELECT SYS_CONTEXT('USERENV','CLIENT_IDENTIFIER')
FROM DUAL
. Database administration views such
as V$SESSION
will also contain the value. It
can be used with DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE
for tracing and can also be used for auditing.
The value may be retained across page requests that use the same persistent connection.
參數
-
connection
-
Oracle 連線標識,由 oci_connect(),oci_pconnect(),或 oci_new_connect() 返回。
-
client_id
-
User chosen string up to 64 bytes long.
返回值
成功時返回 true
, 或者在失敗時返回 false
。
範例
示例 #1 Setting the client identifier to the application user
<?php
// Find the application user's login name
session_start();
$un = my_validate_session($_SESSION['username']);
$c = oci_connect('myschema', 'welcome', 'localhost/XE');
// Tell Oracle who that user is
oci_set_client_identifier($c, $un);
// The next round-trip to the database will piggyback the identifier
$s = oci_parse($c, 'select mydata from mytable');
oci_execute($s);
// ...
?>
註釋
Roundtrip Gotcha
一些 OCI8 函式會導致 Roundtrips. 對數據庫來說當啟用結果快取時,查詢可能不產生 Roundtrips。
參見
- oci_set_module_name() - Sets the module name
- oci_set_action() - Sets the action name
- oci_set_client_info() - Sets the client information
- oci_set_db_operation() - Sets the database operation