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

Pdo\Pgsql::getNotify

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

pdo-pgsql.getnotify.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека pdo-pgsql.getnotify.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
Pdo\Pgsql::getNotify

Референца за `pdo-pgsql.getnotify.php` со подобрена типографија и навигација.

pdo-pgsql.getnotify.php

Pdo\Pgsql::getNotify

Класата Dom\DtdNamedNodeMap

Pdo\Pgsql::getNotifyДобијте асинхронизирано известување

= NULL

public function Pdo\Pgsql::getNotify(int $fetchMode = PDO::FETCH_DEFAULT, int $timeoutMilliseconds = 0): array|false

Враќа множество резултати што претставуваат чекачко асинхронизирано известување.

Параметри

fetchMode

Форматот во кој треба да се врати множеството резултати, една од следниве константи:

timeoutMilliseconds
Времетраењето на чекање за одговор, во милисекунди.

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

If a notification is pending, returns a single row, otherwise returns false. The row has a message field (the channel name) and a pid field (the process ID of the notifying backend). If the notification carries a non-empty payload, the row also has a payload field. With PDO::FETCH_NUM, these fields are at indexes 0, 1Препорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во 2.

Errors/Exceptions

А ValueError се фрла ако fetchMode не е една од валидните PDO::FETCH_* constants.

А ValueError се фрла ако timeoutMilliseconds е помала од 0.

А E_WARNING се покренува кога timeoutMilliseconds е поголема од вредноста што може да се содржи во потпишан 32-битен цел број, во кој случај ќе биде максималната вредност на потпишан 32-битен цел број.

Примери

Пример #1 PDO::pgsqlGetNotify() example

Subscribe to a channel with LISTEN, then read the next pending notification with a one-second timeout.

<?php
$db = new Pdo\Pgsql('pgsql:dbname=test host=localhost', $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$db->exec('LISTEN messages');
$db->exec("NOTIFY messages, 'hello'");

$notification = $db->getNotify(PDO::FETCH_ASSOC, 1000);
var_export($notification);
?>

Горниот пример ќе прикаже нешто слично на:

array (
  'message' => 'messages',
  'pid' => 1928,
  'payload' => 'hello',
)

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

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

sage на sage точка sk
пред 5 месеци
This page needs an example to understand that you **need** to explicitly call LISTEN before using getNotify, like shown in https://www.php.net/manual/en/function.pg-get-notify.php

<?php

$db = new PDO($dsn, $user, $password, $options);
$db->query('LISTEN test');
$notification = $db->pgsqlGetNotify(PDO::FETCH_ASSOC, 10000);

// or

$db = new Pdo\Pgsql($dsn, $user, $password, $options);
$db->query('LISTEN test');
$notification = $db->getNotify(PDO::FETCH_ASSOC, 10000);

// now you can call NOTIFY elsewhere
// PG> NOTIFY test, 'payload string';
var_dump($notification);

?>

array(3) {
  ["message"]=>
  string(4) "test"
  ["pid"]=>
  int(123565)
  ["payload"]=>
  string(14) "payload string"
}

If you called NOTIFY before calling LISTEN, nothing will be returned!

You receive the first notification only, and you have to call getNotify again. And call LISTEN again if DB connection drops.
Навигација

Прелистувај сродни теми и функции.

На оваа страница

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

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

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

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

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