(PHP 5, PHP 7, PHP 8)
pg_parameter_status — サーバーのパラメータ設定を検索する
サーバーのパラメータ設定を検索します。
いくつかのパラメータについては、接続の確立時や値の変更時にサーバーから 自動的に通知されます。pg_parameter_status() は これらの設定問い合わせるために使用可能です。指定したパラメータが存在する 場合にその値を、存在しない場合に false
を返します。
PostgreSQL 8.0 で指定できるパラメータには以下が含まれます。 server_version
、 server_encoding
、client_encoding
、 is_superuser
、session_authorization
、 DateStyle
、TimeZone
および integer_datetimes
(server_encoding
、TimeZone
および integer_datetimes
は 8.0 より前のバージョンでは指定できません)。 server_version
、server_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_version
、 server_encoding
、client_encoding
、 is_superuser
、session_authorization
、 DateStyle
、TimeZone
および 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