bool pq\Connection::flush()

Flush pending writes on the connection. Call after sending any command or data on a nonblocking connection.

If it returns FALSE, wait for the socket to become read or write-ready. If it becomes write-ready, call pq\Connection::flush() again. If it becomes read-ready, call pq\Connection::poll(), then call pq\Connection::flush() again. Repeat until pq\Connection::flush() returns TRUE.

NOTE:
This method was added in v1.1.0, resp. v2.1.0.

Params:

None.

Returns:

Throws:

Example:


<?php
$c 
= new pq\Connection();
$c->nonblocking true;

$c->execAsync("SELECT '".str_repeat("a"6e7)."'", function($r) {
    
$r->fetchCol($s);
    
var_dump(strlen($s));
});

$flushed $c->flush();
do {
    while (!
$flushed || $c->busy) {
        
$r $c->busy ? [$c->socket] : null;
        
$w = !$flushed ?[$c->socket] : null;

        if (
stream_select($r$w$enull)) {
            if (
$r) {
                
printf("P%d"$c->poll());
            }
            if (
$w) {
                
printf("F%d"$flushed $c->flush());
            }
        }
    }
    echo 
"\n";
} while (
$c->getResult());
?>

Yields:


F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0
... (omitted)
F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F1P3P3P3P3P3P3P3P3
... (omitted)
P3P3P3P3P3P3P3P3P3P3P3P3P3P3
int(60000000)