pg_last_notice

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

pg_last_notice PostgreSQL サーバーからの直近の通知メッセージを返す

説明

pg_last_notice(PgSql\Connection $connection, int $mode = PGSQL_NOTICE_LAST): array|string|bool

pg_last_notice() は、connection で指定した PostgreSQL サーバーからの直近の通知メッセージを返します。 たとえば、テーブルに SERIAL カラムを作成する場合などに PostgreSQL サーバーは通知メッセージを送信します。

pg_last_notice() でトランザクションに関連する通知 メッセージがあるかないかをチェックすることで、無意味なクエリの発行を 避けることが可能です。

php.inipgsql.ignore_notice に 1 を指定することで、通知メッセージの追跡をしないようにすることが可能です。

php.inipgsql.log_notice に 0 を指定することで、通知メッセージをログに記録しないようにすることが可能です。 pgsql.ignore_notice が 0 に設定されていない限り、 通知メッセージをログに記録することはできません。

パラメータ

connection

PgSql\Connection クラスのインスタンス。

mode

直近の通知を返す PGSQL_NOTICE_LAST、 すべての通知を返す PGSQL_NOTICE_ALL、 または通知をクリアする PGSQL_NOTICE_CLEAR のいずれか

戻り値

PGSQL_NOTICE_LAST 使用時は、 指定された connection の直近の通知を含む stringPGSQL_NOTICE_ALL 使用時は arrayPGSQL_NOTICE_CLEAR 使用時は bool を返します。

変更履歴

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

例1 pg_last_notice() の例

<?php
  $pgsql_conn 
pg_connect("dbname=mark host=localhost");
  
  
$res pg_query("CREATE TABLE test (id SERIAL)");
  
  
$notice pg_last_notice($pgsql_conn);
  
  echo 
$notice;
?>

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

CREATE TABLE will create implicit sequence "test_id_seq" for "serial" column "test.id"

参考

  • pg_query() - クエリを実行する
  • pg_last_error() - 特定の接続から直近のエラーメッセージ文字列を取得する

関連キーワード:  通知, メッセージ, 直近, PostgreSQL, サーバー, notice, connection, mode, Connection, pgsql