/** * Removes an environment from the database. * * @param \commpress\Cli\Entity\Environment $environment * The environment to remove. * * @throws \commpress\Cli\Service\Database\Exception\DatabaseQueryException * If something goes wrong. */ public function removeEnvironment(Environment $environment) { $query = sprintf('DELETE FROM %s WHERE %s = :id', self::TABLE_ENVIRONMENTS, Environment::FIELD_ID); $stmt = $this->database->prepare($query); $stmt->bindValue(':' . Environment::FIELD_ID, $environment->getId()); $result = $stmt->execute(); $stmt->close(); if (!$result) { throw new DatabaseQueryException(sprintf('Failed to remove environment [ id: %d ] from database.', $environment->getId())); } }
/** * Returns the project by acronym from database. * * @param string $acronym * The acronym to search for. * * @return \commpress\Cli\Entity\Project * The project. * * @throws \commpress\Cli\Service\Database\Exception\DatabaseQueryException * If something goes wrong. */ public function getProjectByAcronym($acronym) { $project = null; $query = sprintf('SELECT * FROM %s WHERE %s = :acronym', self::TABLE_PROJECTS, Project::FIELD_SHORT_NAME); $stmt = $this->database->prepare($query); $stmt->bindValue(':acronym', $acronym); $result = $stmt->execute(); if ($result) { $data = $result->fetchArray(SQLITE3_ASSOC); if (!$data) { throw new DatabaseQueryException(sprintf('Unable to get project with acronym "%s" from database.', $acronym)); } $project = ProjectModel::buildEntity($data); $stmt->close(); } return $project; }