(PHP 8 >= 8.4.0)
Pdo\Pgsql::getNotify — Devuelve una notificación asíncrona
$fetchMode = PDO::FETCH_DEFAULT, int $timeoutMilliseconds = 0): array|falseDevuelve un conjunto de resultados que representa una notificación asíncrona pendiente.
fetchModeEl formato en el que debe estar el conjunto de resultados, una de las constantes siguientes:
timeoutMilliseconds
Si una notificación está pendiente, devuelve una sola fila, en caso
contrario devuelve false. La fila tiene un campo
message (el nombre del canal) y un campo
pid (el identificador de proceso (PID) del backend
notificador). Si la notificación lleva una carga útil (payload) no vacía,
la fila tiene además un campo payload. Con
PDO::FETCH_NUM, estos campos están en los índices
0, 1 y 2.
Se lanza una ValueError si
fetchMode no es una de las constantes
PDO::FETCH_*
válidas.
Se lanza una ValueError si
timeoutMilliseconds es inferior a 0.
Se lanza una E_WARNING cuando
timeoutMilliseconds es superior al valor
que puede contener un entero firmado de 32 bits, en cuyo caso será
el valor máximo de un entero firmado de 32 bits.
Ejemplo #1 Ejemplo de Pdo\Pgsql::getNotify()
Suscribirse a un canal con LISTEN, luego leer la
siguiente notificación pendiente con un tiempo de espera de un segundo.
<?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);
?>Resultado del ejemplo anterior es similar a:
array ( 'message' => 'messages', 'pid' => 1928, 'payload' => 'hello', )