public function getTag($principalId, ITag $tag) { $sqlQuery = 'SELECT ' . TagManager::KEY_TAGID . ', ' . TagManager::KEY_LABEL . ', ' . TagManager::KEY_COLOR . ' FROM ' . self::TAGS_TABLE_NAME . ' WHERE ' . TagManager::KEY_PRINCIPALID . ' = :' . TagManager::KEY_PRINCIPALID . ' AND ' . TagManager::KEY_LABEL . ' = :' . TagManager::KEY_LABEL; $data = array(TagManager::KEY_PRINCIPALID => $principalId, TagManager::KEY_LABEL => $tag->getLabel()); try { $dbHandler = $this->getConnection(); $stmt = $dbHandler->prepare($sqlQuery); $stmt->execute($data); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); $result = current($result); if ($result === false) { throw new EyeNoSuchTagException('Unknown tag "' . $tag . '".'); } $tag->setId($result[TagManager::KEY_TAGID]); $tag->setColor($result[TagManager::KEY_COLOR]); return $tag; } catch (PDOException $e) { $this->destroyConnection(); throw new EyeTagException('An error occured while retrieving tag "' . $tag . '" from the database.', 0, $e); } $this->destroyConnection(); }