pg_last_notice
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.ini で pgsql.ignore_notice に 1 を指定することで、通知メッセージの追跡をしないようにすることが 可能です。
PHP 4.3.0 以降、php.ini で pgsql.log_notice に 0 を指定することで、通知メッセージをログに記録しないようにすることが 可能です。pgsql.ignore_notice が 0 に設定されていない 限り、通知メッセージをログに記録することはできません。
パラメータ
- connection
-
PostgreSQL データベースの接続リソース。
返り値
指定された connection の直近の通知を文字列で 返します。エラー時には FALSE を返します。例
例 1802. 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() |
- pg_last_noticeのページへのリンク