array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'function.pg-get-notify.php', 1 => 'pg_get_notify', ), 'up' => array ( 0 => 'ref.pgsql.php', 1 => 'PostgreSQL 関数', ), 'prev' => array ( 0 => 'function.pg-free-result.php', 1 => 'pg_free_result', ), 'next' => array ( 0 => 'function.pg-get-pid.php', 1 => 'pg_get_pid', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'reference/pgsql/functions/pg-get-notify.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
pg_get_notify — SQL NOTIFY メッセージを取得する
pg_get_notify()は、NOTIFY
SQL
コマンドにより送信された通知メッセージを取得します。
通知メッセージを取得するには、LISTEN
SQL
コマンドを発行する必要があります。
connection
PgSql\Connection クラスのインスタンス。
mode
返される配列のインデックスを制御するオプションの引数です。
mode
は定数で、以下の値を取ることができます。:
PGSQL_ASSOC
, PGSQL_NUM
, PGSQL_BOTH
。
PGSQL_NUM
を使うと、配列のインデックスを数値にした配列を返します。PGSQL_ASSOC
を使うと、連想配列のインデックスを返します。PGSQL_BOTH
を指定すると、数値と連想配列のインデックスを両方含めた形で配列を返します。
NOTIFY
メッセージ名とバックエンドの PID を含む
配列を返します。
サーバーでサポートされている場合は、
配列にはサーバーのバージョンおよびペイロードも含まれます。
もし待ち受ける NOTIFY
が存在しない場合は、
false
を返します。
バージョン | 説明 |
---|---|
8.1.0 |
connection は、PgSql\Connection クラスのインスタンスを期待するようになりました。
これより前のバージョンでは、リソース を期待していました。
|
例1 PostgreSQL NOTIFY メッセージ
<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
echo "An error occurred.\n";
exit;
}
// 他のプロセスからの 'author_updated' メッセージを監視する
pg_query($conn, 'LISTEN author_updated;');
$notify = pg_get_notify($conn);
if (!$notify) {
echo "No messages\n";
} else {
print_r($notify);
}
?>