pg_parameter_status

サーバーのパラメータ設定を検索する

説明

string pg_parameter_status(PgSql\Connection $connection = ?, string $param_name)

サーバーのパラメータ設定を検索します。

いくつかのパラメータについては、接続の確立時や値の変更時にサーバーから 自動的に通知されます。pg_parameter_status は これらの設定問い合わせるために使用可能です。指定したパラメータが存在する 場合にその値を、存在しない場合に false を返します。

PostgreSQL 8.0 で指定できるパラメータには以下が含まれます。 server_versionserver_encodingclient_encodingis_superusersession_authorizationDateStyleTimeZone および integer_datetimesserver_encodingTimeZone および integer_datetimes は 8.0 より前のバージョンでは指定できません)。 server_versionserver_encoding および integer_datetimes は、PostgreSQL の稼動中には変更できないことに注意しましょう。

PostgreSQL 7.3 以前のサーバーはパラメータ設定を通知する機能を持っていません。 しかし、pg_parameter_status には server_version および client_encoding を取得する機能を組み込んでいます。これらの値を取得するためにアプリケーションで アドホックなコードを書くのではなく、pg_parameter_status を使用することを推奨します。

警告

7.4 より前の PostgreSQL サーバーでは、接続の確立後に SET を用いて client_encoding を変更しても pg_parameter_status には反映されません。

パラメータ

connection

PgSql\Connection クラスのインスタンス。 connection が指定されない場合は、デフォルトの接続を使います。 デフォルトの接続とは、pg_connect または pg_pconnect によって確立された直近の接続です。

警告

PHP 8.1.0 以降では、デフォルトの接続を使うことは推奨されなくなりました。

param_name

指定可能な param_name には以下が含まれます。 server_versionserver_encodingclient_encodingis_superusersession_authorizationDateStyleTimeZone および integer_datetimes。 この値は、大文字小文字を区別するので注意して下さい。

戻り値

パラメータの値を文字列で返します。失敗した場合や param_name が間違っている場合には false を返します。

変更履歴

バージョン 説明
8.1.0 connection は、PgSql\Connection クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、リソース を期待していました。

例1 pg_parameter_status の例

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  echo "Server encoding: ", pg_parameter_status($dbconn, "server_encoding");
?>

上の例の出力は以下となります。

Server encoding: SQL_ASCII