FOF30\Utils\InstallScript::bugfixDBFunctionReturnedNoError PHP Method

bugfixDBFunctionReturnedNoError() protected method

Bugfix for "DB function returned no error"
    protected function bugfixDBFunctionReturnedNoError()
    {
        $db = JFactory::getDbo();
        // Fix broken #__assets records
        $query = $db->getQuery(true);
        $query->select('id')->from('#__assets')->where($db->qn('name') . ' = ' . $db->q($this->componentName));
        $db->setQuery($query);
        try {
            $ids = $db->loadColumn();
        } catch (Exception $exc) {
            return;
        }
        if (!empty($ids)) {
            foreach ($ids as $id) {
                $query = $db->getQuery(true);
                $query->delete('#__assets')->where($db->qn('id') . ' = ' . $db->q($id));
                $db->setQuery($query);
                try {
                    $db->execute();
                } catch (Exception $exc) {
                    // Nothing
                }
            }
        }
        // Fix broken #__extensions records
        $query = $db->getQuery(true);
        $query->select('extension_id')->from('#__extensions')->where($db->qn('type') . ' = ' . $db->q('component'))->where($db->qn('element') . ' = ' . $db->q($this->componentName));
        $db->setQuery($query);
        $ids = $db->loadColumn();
        if (!empty($ids)) {
            foreach ($ids as $id) {
                $query = $db->getQuery(true);
                $query->delete('#__extensions')->where($db->qn('extension_id') . ' = ' . $db->q($id));
                $db->setQuery($query);
                try {
                    $db->execute();
                } catch (Exception $exc) {
                    // Nothing
                }
            }
        }
        // Fix broken #__menu records
        $query = $db->getQuery(true);
        $query->select('id')->from('#__menu')->where($db->qn('type') . ' = ' . $db->q('component'))->where($db->qn('menutype') . ' = ' . $db->q('main'))->where($db->qn('link') . ' LIKE ' . $db->q('index.php?option=' . $this->componentName));
        $db->setQuery($query);
        $ids = $db->loadColumn();
        if (!empty($ids)) {
            foreach ($ids as $id) {
                $query = $db->getQuery(true);
                $query->delete('#__menu')->where($db->qn('id') . ' = ' . $db->q($id));
                $db->setQuery($query);
                try {
                    $db->execute();
                } catch (Exception $exc) {
                    // Nothing
                }
            }
        }
    }