getQueryParams(); $query = ( 'SELECT event_device.id, event_device.lang, event_device.created, event_ua_parsed.device, event_ua_parsed.browser_name, event_ua_parsed.browser_version, event_ua_parsed.os_name, event_ua_parsed.os_version, event_ua_parsed.ua, event_ua_parsed.modified FROM event_device LEFT JOIN event_ua_parsed ON (event_device.user_agent = event_ua_parsed.id) WHERE event_device.key = :api_key %s' ); $this->applySearch($query, $queryParams); $this->applyOrder($query); $this->applyLimit($query, $queryParams); return [$query, $queryParams]; } public function getTotal(): array { $queryParams = $this->getQueryParams(); $query = ( 'SELECT COUNT(DISTINCT event_device.id) FROM event_device WHERE event_device.key = :api_key %s' ); $this->applySearch($query, $queryParams); return [$query, $queryParams]; } private function applySearch(string &$query, array &$queryParams): void { //$search = $this->f3->get('REQUEST.search'); $searchConditions = $this->injectIdQuery('event_device.id', $queryParams); //Add ids into request $query = sprintf($query, $searchConditions); } }