oci_set_client_identifier

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

oci_set_client_identifierSets the client identifier

说锟斤拷

oci_set_client_identifier ( resource $connection , string $client_identifier ) : bool

Sets 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_identifier

User chosen string up to 64 bytes long.

锟斤拷锟斤拷值

锟缴癸拷时锟斤拷锟斤拷 TRUE锟斤拷 锟斤拷锟斤拷锟斤拷失锟斤拷时锟斤拷锟斤拷 FALSE锟斤拷

锟斤拷锟斤拷

Example #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);

// ...

?>

注锟斤拷

Caution

Roundtrip Gotcha

一些 OCI8 锟斤拷锟斤拷锟结导锟斤拷 Roundtrips. 锟斤拷锟斤拷锟捷匡拷锟斤拷说锟斤拷锟斤拷锟矫斤拷锟斤拷锟斤拷锟绞憋拷锟斤拷锟窖拷锟斤拷懿锟斤拷锟斤拷锟絉oundtrips锟斤拷

锟轿硷拷