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.ini で pgsql.ignore_notice に 1 を指定することで、通知メッセージの追跡をしないようにすることが 可能です。
PHP 4.3.0 以降、php.ini で pgsql.log_notice に 0 を指定することで、通知メッセージをログに記録しないようにすることが 可能です。pgsql.ignore_notice が 0 に設定されていない 限り、通知メッセージをログに記録することはできません。
例 1. pg_last_error() の例
上の例の出力は以下となります。
|