getConnection(); $exec->setConnection(new pq\Connection(PQ_TEST_DSN)); $exec->execute(new \pq\Query\Writer($sql, $params), function(){}); $exec->setConnection($conn); } class QueryLogger implements \SplObserver { protected $fp; function __construct($logfile = null) { if (!isset($logfile)) { $logfile = __DIR__."/query.log"; } if (!$this->fp = @fopen($logfile, "a")) { throw new \RuntimeException(error_get_last()["message"]); } } function __destruct() { if (is_resource($this->fp)) { fclose($this->fp); } } function update(\SplSubject $executor) { $result = $executor->getResult(); if (isset($result)) { fprintf($this->fp, "[%s] R %s\n", date_create()->format("Y-m-d H:i:s"), json_encode($result)); } elseif (($query = $executor->getQuery())) { fprintf($this->fp, "[%s] Q %s %% %s\n", date_create()->format("Y-m-d H:i:s"), preg_replace("/\s+/", " ", $query), json_encode($query->getParams())); } } }