PHP.mk документација

pg_get_notify

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.pg-get-notify.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.pg-get-notify.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
pg_get_notify

Референца за `function.pg-get-notify.php` со подобрена типографија и навигација.

function.pg-get-notify.php

pg_get_notify

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_get_notifyДобива SQL NOTIFY порака

= NULL

pg_get_notify(PgSql\Connection $connection, int $mode = PGSQL_ASSOC): array|false

pg_get_notify() добива известувања генерирани од NOTIFY SQL команда. За да примите известувања, LISTEN SQL командата мора да биде издадена.

Параметри

connection

Еден PgSql\Connection instance.

mode

Опционален параметар што контролира како вратениот array е индексиран. mode е константа и може да ги земе следните вредности: PGSQL_ASSOC, PGSQL_NUM and PGSQL_BOTH. Користејќи PGSQL_NUM, функцијата ќе врати низ со нумерички индекси, користејќи PGSQL_ASSOC ќе врати само асоцијативни индекси додека PGSQL_BOTH ќе врати и нумерички и асоцијативни индекси.

Вратени вредности

Еден array што го содржи NOTIFY име на пораката и PID на бекендот. Ако е поддржано од серверот, низата исто така ги содржи верзијата на серверот и товарот. Во спротивно, ако нема NOTIFY чека, тогаш false се враќа.

Дневник на промени

Верзија = NULL
8.1.0 На connection параметарот очекува PgSql\Connection инстанца сега; претходно, а resource се очекуваше.

Примери

Пример #1 PostgreSQL NOTIFY порака

<?php
$conn
= pg_pconnect("dbname=publisher");
if (!
$conn) {
echo
"An error occurred.\n";
exit;
}

// Listen 'author_updated' message from other processes
pg_query($conn, 'LISTEN author_updated;');
$notify = pg_get_notify($conn);
if (!
$notify) {
echo
"No messages\n";
} else {
print_r($notify);
}
?>

Види Исто така

  • pg_get_pid() - Добива ID на процесот на бекендот

Белешки од корисници 2 забелешки

glococo на gmail точка com
пред 8 години
Instant yet Simple PHP notification with HTML5 Server-Sent Events

sse.php
<?php
$dbconn = new PDO("pgsql:host=localhost;dbname=mydb", "pduser", "userpass");
$dbconn->exec('LISTEN "channel_name"');   // those doublequotes are very important

header("X-Accel-Buffering: no"); // disable ngnix webServer buffering
header("Content-Type: text/event-stream");
header("Cache-Control: no-cache");
ob_end_flush();  // close PHP output buffering
$inc=0;

while (1) {
  $result = "";
  // wait for one Notify 10seconds instead of using sleep(10)
  $result = $dbconn->pgsqlGetNotify(PDO::FETCH_ASSOC, 10000); 

  if ( $result ) { 
        echo "id: $inc\ndata: ".stripslashes(json_encode($result))."\n\n";
        $inc++;
  }

  flush();
}
?>

Tested with HTML+JS sample file from Mozilla web site (ssedemo.php)
david на frankieandshadow точка com
пред 5 години
It appears that pg_get_notify does not distinguish between no message waiting and a failure when checking - both seem to return FALSE.

I had to add a pg_check_connection(...) before pg_get_notify to check the connection is still alive (it's quite likely to be a long-standing connection with pg_get_notify as you'll be polling waiting for something to happen). In my case the remote database server had a hiccup, and without pg_check_connection the listeners failed to notice, so never saw later notifications.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.