2016-06-23 4 views
1

i сделанный модуль для prestashop. Просто базовая форма администрирования с записью в БД. Но когда я пытаюсь установить модуль на Prestashop, у меня есть эта ошибка:Ошибка MySQL во время установки модуля Prestashop

[PrestaShopDatabaseException] 

Duplicate entry '0' for key 'PRIMARY' 


INSERT INTO `ps_module` (`name`, `active`, `version`) VALUES ('apishippingtextsource', '1', '0.0.1') 

at line 635 in file classes/db/Db.php 
629.   WebserviceRequest::getInstance()->setError(500, '[SQL Error] '.$this->getMsgError().'. From '.(isset($dbg[3]['class']) ? $dbg[3]['class'] : '').'->'.$dbg[3]['function'].'() Query was : '.$sql, 97); 
630.  } 
631.  else if (_PS_DEBUG_SQL_ && $errno && !defined('PS_INSTALLATION_IN_PROGRESS')) 
632.  { 
633.   if ($sql) 
634.    throw new PrestaShopDatabaseException($this->getMsgError().'<br /><br /><pre>'.$sql.'</pre>'); 
635.   throw new PrestaShopDatabaseException($this->getMsgError()); 
636.  } 
637. } 
638. 
639. /** 

мой install.php для SQL:

$sql = array(); 

$sql[] = 'CREATE TABLE IF NOT EXISTS `' . _DB_PREFIX_ . 'api_shipping_text` (
     `id_text` int(10) unsigned NOT NULL AUTO_INCREMENT, 
     PRIMARY KEY (`id_text`) 
) ENGINE=' . _MYSQL_ENGINE_ . ' DEFAULT CHARSET=utf8;'; 

foreach ($sql as $query) { 
    if (Db::getInstance()->execute($query) == false) { 
     return false; 
    } 
} 

Версия Prestashop является 1.6.0.9.

+0

Можете ли вы проверить значение 'auto_increment' вашей таблицы' ps_module'? Может быть, 'auto_increment' не определен или не определен в' 0' –

+0

@FlorianLemaitre большое спасибо, я идиот. Я не устанавливаю auto_increment для столбца id. И вот я, проблема, как это возможно, есть модули, установленные. : D –

ответ

1

Вы можете проверить: auto_increment значение вашей таблицы ps_module? Возможно, auto_increment не определен 0.

Если это так, вы, вероятно, имели ошибку во время миграции базы данных или установили другой модуль, возившийся с auto_increment.

Смежные вопросы