array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'function.pg-last-notice.php', 1 => 'pg_last_notice', ), 'up' => array ( 0 => 'ref.pgsql.php', 1 => 'PostgreSQL 関数', ), 'prev' => array ( 0 => 'function.pg-last-error.php', 1 => 'pg_last_error', ), 'next' => array ( 0 => 'function.pg-last-oid.php', 1 => 'pg_last_oid', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'reference/pgsql/functions/pg-last-notice.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
pg_last_notice — PostgreSQL サーバーからの直近の通知メッセージを返す
pg_last_notice() は、connection
で指定した PostgreSQL サーバーからの直近の通知メッセージを返します。
たとえば、テーブルに SERIAL
カラムを作成する場合などに
PostgreSQL サーバーは通知メッセージを送信します。
pg_last_notice() でトランザクションに関連する通知 メッセージがあるかないかをチェックすることで、無意味なクエリの発行を 避けることが可能です。
php.ini で pgsql.ignore_notice
に 1 を指定することで、通知メッセージの追跡をしないようにすることが可能です。
php.ini で pgsql.log_notice
に 0 を指定することで、通知メッセージをログに記録しないようにすることが可能です。
pgsql.ignore_notice
が 0 に設定されていない限り、
通知メッセージをログに記録することはできません。
connection
PgSql\Connection クラスのインスタンス。
mode
直近の通知を返す PGSQL_NOTICE_LAST
、
すべての通知を返す PGSQL_NOTICE_ALL
、
または通知をクリアする PGSQL_NOTICE_CLEAR
のいずれか
PGSQL_NOTICE_LAST
使用時は、
指定された connection
の直近の通知を含む string、
PGSQL_NOTICE_ALL
使用時は array、
PGSQL_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"