_execute(); } /** * @return int|bool * @throws Exception */ public function save(): int|bool { return $this->_execute(); } /** * @return array|null * @throws Exception */ public function all(): ?array { $pdo = $this->db->getSlaveClient(); $result = $pdo->fetchAll($this->sql, $this->params); $this->db->release($pdo); return $result; } /** * @return array|null * @throws Exception */ public function one(): ?array { $pdo = $this->db->getSlaveClient(); $result = $pdo->fetch($this->sql, $this->params); $this->db->release($pdo); return $result; } /** * @return mixed * @throws Exception */ public function fetchColumn(): mixed { $pdo = $this->db->getSlaveClient(); $result = $pdo->fetchColumn($this->sql, $this->params); $this->db->release($pdo); return $result; } /** * @return int|null * @throws Exception */ public function rowCount(): ?int { $pdo = $this->db->getSlaveClient(); $result = $pdo->rowCount($this->sql, $this->params); $this->db->release($pdo); return $result; } private function printErrorMessage(\Throwable $throwable): mixed { $this->logger->addError($this->sql . '. error: ' . $throwable->getMessage(), 'mysql'); return null; } /** * @return int|bool * @throws Exception */ public function flush(): int|bool { return $this->_execute(); } /** * @return bool|int * @throws ConfigException * @throws Exception */ private function _execute(): bool|int { $pdo = $this->db->getPdo(); $result = $pdo->execute($this->sql, $this->params); $this->db->release($pdo); return $result == 0 ? true : $result; } /** * @return array|bool * @throws Exception */ private function search(): bool|array { $pdo = $this->db->getSlaveClient(); return [$pdo, null]; } /** * @return int|bool * @throws Exception */ public function delete(): int|bool { return $this->_execute(); } /** * @return int|bool * @throws Exception */ public function exec(): int|bool { return $this->_execute(); } /** * @param array $data * @return $this */ public function bindValues(array $data = []): static { if (count($data) > 0) { $this->params = array_merge($this->params, $data); } return $this; } /** * @param $sql * @return $this * @throws Exception */ public function setSql($sql): static { $this->sql = $sql; return $this; } }