pg_last_notice

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

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

説明

pg_last_notice ( resource $connection [, int $option = PGSQL_NOTICE_LAST ] ) : mixed

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

PostgreSQL データベースの接続リソース。

option

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

返り値

PGSQL_NOTICE_LAST 使用時は、 指定された connection の直近の通知を含む stringPGSQL_NOTICE_ALL 使用時は arrayPGSQL_NOTICE_CLEAR 使用時は boolean、 エラー時には FALSE を返します。

例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"

変更履歴

バージョン 説明
7.1.0 option パラメータが追加されました。

参考

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