public function query($database, $query, $parameters = [])
{
if (!$this->driver instanceof QueryDriverInterface) {
throw new Exception('The currently configured driver does not support query operations');
}
if ($database) {
$parameters['db'] = $database;
}
$driver = $this->getDriver();
$parameters = ['url' => 'query?' . http_build_query(array_merge(['q' => $query], $parameters)), 'database' => $database, 'method' => 'get'];
// add authentication to the driver if needed
if (!empty($this->username) && !empty($this->password)) {
$parameters += ['auth' => [$this->username, $this->password]];
}
$driver->setParameters($parameters);
try {
// store the last query sent
static::$lastQuery = $query;
// perform the query and return the resultset
return $driver->query();
} catch (DriverException $e) {
throw new Exception('Query has failed', $e->getCode(), $e);
}
}