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, $e, null)) {
			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)