2015-03-08 134 views
0

我想更新我的SQL价值为我的自定义模块,但由于该值在分隔的SQL表,我坚持...Prestashop自定义模块,如何更新我的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(); 
    } 

回答

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

+0

谢谢您的回答,但是这不工作:( $ SQL = '更新'。 _DB_PREFIX_。 'mymodule' SET data =“'。Tools :: getValue('MY_HTML_DATA','')。'”WHERE option = \'MY_HTML_DATA \';'; Db :: getInstance() - > ExecuteS($ sql); – WolwX 2015-03-09 21:27:19

+0

好吧,经过一些与逗号工作的调整=> \t $ sql ='UPDATE''._DB_PREFIX _。'mymodule' SET'data' =“'。Tools :: getValue('MY_HTML_DATA','') ''WHERE'option' = \''MY_HTML_DATA';';如果(Db :: getInstance() - > Execute($ sql)) – WolwX 2015-03-09 22:26:46

+0

但是,我不明白为什么这是为小的“数据”工作,但是当我想保存一个完整的表格在例如html的例子,这不是't work:x – WolwX 2015-03-09 22:27:59

-1

试试:

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