db = $database->getConnection(); } /** * Get details of a specified host ID (or all hosts) in a specified platform ID. * * @param string $platform_id The platform ID to filter the hosts by (optional). * @param string $host_id The host ID to filter the details (optional). * * @return array The details of the host(s) in the form of an associative array. */ public function getHostDetails($platform_id = '', $host_id = '') { $sql = 'SELECT id, address, port, platform_id, name FROM hosts'; if ($platform_id !== '' && $host_id !== '') { $sql .= ' WHERE platform_id = :platform_id AND id = :host_id'; } elseif ($platform_id !== '') { $sql .= ' WHERE platform_id = :platform_id'; } elseif ($host_id !== '') { $sql .= ' WHERE id = :host_id'; } $query = $this->db->prepare($sql); if ($platform_id !== '') { $query->bindParam(':platform_id', $platform_id); } if ($host_id !== '') { $query->bindParam(':host_id', $host_id); } $query->execute(); return $query->fetchAll(PDO::FETCH_ASSOC); } /** * Add a new host to the database. * * @param array $newHost An associative array containing the details of the host to be added. * * @return bool True if the host was added successfully, otherwise false. */ public function addHost($newHost) { try { $sql = 'INSERT INTO hosts (address, port, platform_id, name) VALUES (:address, :port, :platform_id, :name)'; $query = $this->db->prepare($sql); $query->execute([ ':address' => $newHost['address'], ':port' => $newHost['port'], ':platform_id' => $newHost['platform_id'], ':name' => $newHost['name'], ]); return true; } catch (Exception $e) { return $e->getMessage(); } } /** * Edit an existing host in the database. * * @param string $platform_id The platform ID to which the host belongs. * @param array $updatedHost An associative array containing the updated details of the host. * * @return bool True if the host was updated successfully, otherwise false. */ public function editHost($platform_id, $updatedHost) { try { $sql = 'UPDATE hosts SET address = :address, port = :port, name = :name WHERE id = :id'; $query = $this->db->prepare($sql); $query->execute([ ':id' => $updatedHost['id'], ':address' => $updatedHost['address'], ':port' => $updatedHost['port'], ':name' => $updatedHost['name'], ]); return true; } catch (Exception $e) { return $e->getMessage(); } } /** * Delete a host from the database. * * @param int $host_id The ID of the host to be deleted. * * @return bool True if the host was deleted successfully, otherwise false. */ public function deleteHost($host_id) { try { $sql = 'DELETE FROM hosts WHERE id = :host_id'; $query = $this->db->prepare($sql); $query->bindParam(':host_id', $host_id); $query->execute(); return true; } catch (Exception $e) { return $e->getMessage(); } } } ?>