pg_last_notice

(PHP 4 >= 4.0.6, PHP 5)

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

説明

string pg_last_notice ( resource connection )

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

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

警告

この関数は「実験的」なものであり、まだ完全に実装されていません。 pg_last_notice() は PHP 4.0.6 で追加されました。 しかし、PHP 4.0.6 には通知メッセージ処理の問題があります。 pg_last_notice() を使用しない場合でも PHP 4.0.6 で PostgreSQL モジュールを使用することは推奨されません。

この関数は、PHP 4.3.0 で完全に実装されました。 PHP 4.3.0 より前のバージョンでは、データベースの接続パラメータを 無視していました。

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

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

パラメータ

connection

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

返り値

指定された connection の直近の通知を文字列で 返します。エラー時には FALSE を返します。

例 1. pg_last_error() の例

<?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()