2015-03-08 76 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); 
相關問題