domain = $data['domain']; $this->blockdomains = $data['blockdomains']; $this->disposable_domains = $data['disposable_domains']; $this->free_email_provider = $data['free_email_provider']; $this->creation_date = $data['creation_date']; $this->expiration_date = $data['expiration_date']; $this->return_code = $data['return_code']; $this->disabled = $data['disabled']; $this->closest_snapshot = $data['closest_snapshot']; $this->mx_record = $data['mx_record']; $this->ip = $data['ip']; $this->geo_ip = $data['geo_ip']; $this->geo_html = $data['geo_html']; $this->web_server = $data['web_server']; $this->hostname = $data['hostname']; $this->emails = $data['emails']; $this->phone = $data['phone']; $this->discovery_date = $data['discovery_date']; $this->tranco_rank = $data['tranco_rank']; $dates = [$this->creation_date, $this->expiration_date, $this->closest_snapshot, $this->discovery_date]; if (($this->ip && !$this->validateIP($this->ip)) || !$this->validateDates($dates)) { throw new \Exception('Validation failed'); } } public function prepareUpdate(): array { $params = $this->queryParams(); unset($params[':domain']); $placeholders = array_keys($params); $updateString = $this->updateStringByPlaceholders($placeholders); return [$params, $updateString]; } public function updateEntityInDb(int $entityId, int $apiKey): void { // total_visit and total_account should remain still [$params, $updateString] = $this->prepareUpdate(); $params['entity_id'] = $entityId; $params['key'] = $apiKey; $query = (" UPDATE event_domain SET {$updateString} WHERE event_domain.id = :entity_id AND event_domain.key = :key "); $model = new \Models\Domain(); $model->execQuery($query, $params); } }