oci_set_client_info
クライアント情報を設定する
説明
bool oci_set_client_info(resource $connection, string $client_info)
PHP からデータベースへの次の「ラウンドトリップ」が起きると、
クライアント情報がデータベースに登録されます。これは一般的にSQLステートメントが実行されるときに起こります。
V$SESSION のようなデータベース管理ビューから、
クライアント情報を後に問い合わせることができます。
この関数で設定した値は、持続的接続をまたがって保持される可能性があります。
パラメータ
-
connection
-
oci_connect、oci_pconnect
あるいは oci_new_connect が返す Oracle 接続 ID。
-
client_info
-
ユーザーが選んだ、長さが最高64バイトの文字列。
戻り値
成功した場合に true を、失敗した場合に false を返します。
例
例1 クライアント情報を設定する
<?php
$c = oci_connect('hr', 'welcome', 'localhost/XE');
// クライアント情報を登録する
oci_set_client_info($c, 'My Application Version 2');
// クエリを実行することで、ラウンドトリップを起こすコードの例:
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);
sleep(30);
?>
// スクリプトを実行中、管理者はクライアント情報を見ることができる
sqlplus system/welcome
SQL> select client_info from v$session;
注意
注意: Oracle のバージョン
この関数が使えるのは、PHP をバージョン 10g 以降の
Oracle データベースライブラリとリンクさせた場合だけです。
ヒントパフォーマンス
古いバージョンの OCI8 や Oracle データベースでは、クライアントの情報を Oracle の
DBMS_APPLICATION_INFO パッケージで設定することができました。
それよりも oci_set_client_info を使うほうが効率的です。
警告データベースとのやりとりに関するメモ
OCI8 関数の中には、データベースとのやりとりを伴わないものもあります。
たとえば、結果のキャッシングが有効になっている場合、
クエリを実行してもデータベースとのやりとりを行わない可能性があります。
参考
- oci_set_module_name
- oci_set_action
- oci_set_client_identifier
- oci_set_db_operation