pg_get_notify

SQL NOTIFY メッセージを取得する

説明

arrayfalse pg_get_notify(PgSql\Connection $connection, int $mode = PGSQL_ASSOC)

pg_get_notifyは、NOTIFY SQL コマンドにより送信された通知メッセージを取得します。 通知メッセージを取得するには、LISTEN SQL コマンドを発行する必要があります。

パラメータ

connection

PgSql\Connection クラスのインスタンス。

mode

返される配列のインデックスを制御するオプションの引数です。 mode は定数で、以下の値を取ることができます。: PGSQL_ASSOC, PGSQL_NUM, PGSQL_BOTHPGSQL_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);
}
?>

参考

  • pg_get_pid