Пользовательский модуль Prestashop, как обновить значение sql?

0

Я хочу обновить свое значение sql для моего настраиваемого модуля, но поскольку это значение находится в отдельной таблице sql, я застрял...

Первое значение MY_TOPBAR обновляется правильно, так как она обновляется в таблице ps_configuration, но мое второе значение MY_HTML_DATA не обновляется правильно в моей таблице ps_mymodule.

Вот мой php-код:

public function getContent()
    {
        // If we try to update the settings
        $output = '';

        if (Tools::isSubmit('submit'.$this->name))
        {   
            Configuration::updateValue('MY_TOPBAR', Tools::getValue('MY_TOPBAR', ''));
            Configuration::updateValue('MY_HTML_DATA', Tools::getValue('MY_HTML_DATA', ''));
            Tools::redirectAdmin($this->context->link->getAdminLink('AdminModules').'&configure='.$this->name.'&tab_module='.$this->tab.'&conf=4&module_name='.$this->name);
        }
        return $output.$this->displayForm();
    }

Как я могу правильно обновить значение MY_HTML_DATA?

благодаря

#

Я, наконец, использовал метод, предоставленный @yenshirak, и вот он - окончательный код, который разрешает обновлять мою пользовательскую таблицу без каких-либо html-данных =>

public function getContent()
    {
        // If we try to update the settings
        $output = '';

        if (Tools::isSubmit('submit'.$this->name))
        {   
            Configuration::updateValue('MY_TOPBAR', Tools::getValue('MY_TOPBAR', ''));
        $MY_HTML_DATA = pSQL( Tools::getValue('MY_HTML_DATA', ''), true );
        $sql='UPDATE ''._DB_PREFIX_.'mymodule' SET 'data' = "'.$MY_HTML_DATA.'" WHERE 'option' =\'MY_HTML_DATA\';';
        if(Db::getInstance()->Execute($sql))
            Tools::redirectAdmin($this->context->link->getAdminLink('AdminModules').'&configure='.$this->name.'&tab_module='.$this->tab.'&conf=4&module_name='.$this->name);
        }
        return $output.$this->displayForm();
    }
Теги:
prestashop

2 ответа

1
Лучший ответ

Вы должны использовать класс Db для обновления вашей настраиваемой таблицы:

$sql = 'UPDATE ' . _DB_PREFIX_ . 'mymodule SET your_column_name = "' . pSQL(Tools::getValue('MY_HTML_DATA', '')) . '" WHERE id = your_id';
Db::getInstance()->execute($sql);

Документация: лучшие практики класса DB

  • 0
    Спасибо за ваш ответ, но это не сработает :( $ sql = 'UPDATE'. DB_PREFIX . 'Mymodule` SET data = "'. Tools :: getValue ('MY_HTML_DATA', ''). '" WHERE option = \ 'MY_HTML_DATA \'; '; Db :: getInstance () -> ExecuteS ($ sql);
  • 0
    Хорошо, после некоторых изменений с запятой, которая работает следующим образом => $ sql = 'UPDATE '._DB_PREFIX_.'mymodule SET data = "'. Tools :: getValue ('MY_HTML_DATA', ''). '" WHERE option = \ 'MY_HTML_DATA \'; '; если (Db :: деЫпзЬапс () -> Выполнить ($ SQL))
Показать ещё 3 комментария
-1

Попробуй:

$query = "UPDATE "._DB_PREFIX_."attribute SET color= '".$imagename."' WHERE id_attribute_group = '".$option_id."'";
Db::getInstance()->Execute($query);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню