. */ namespace SP\Infrastructure\Database; use PDOStatement; use SP\Core\Exceptions\ConstraintException; use SP\Core\Exceptions\QueryException; /** * Interface DatabaseInterface * * @package SP\Storage */ interface DatabaseInterface { /** * Performs a DB query * * @throws QueryException * @throws ConstraintException */ public function doQuery(QueryData $queryData): QueryResult; /** * Don't fetch records and return prepared statement */ public function doQueryRaw(QueryData $queryData): PDOStatement; /** * Returns the total number of records */ public function getFullRowCount(QueryData $queryData): int; public function getDbHandler(): DbStorageInterface; public function getNumRows(): int; public function getNumFields(): int; public function getLastResult(): ?array; public function getLastId(): ?int; public function beginTransaction(): bool; public function endTransaction(): bool; public function rollbackTransaction(): bool; public function getColumnsForTable(string $table): array; }