Prestashop Custom Module,如何更新我的sql值?

时间:2015-03-08 21:46:36

标签: php sql prestashop

我想更新我的自定义模块的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();
    }

2 个答案:

答案 0 :(得分: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 class best practices

答案 1 :(得分:-1)

试一试:

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