2016-06-23 12 views
1

私はprestashop用のモジュールを作成しました。基本的な管理フォームとDBへの書き込み。しかし、私はPrestaShopのでモジュールをインストールしようとすると、私はこのエラーを持っている:Prestashopモジュールのインストール中にMySQLエラーが発生しました

[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. /** 

SQLのための私のinstall.phpを:PrestaShopのの

$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; 
    } 
} 

バージョンは1.6.0.9です。

+0

'ps_module'テーブル構造体の' auto_increment'値を確認できますか?おそらく 'auto_increment'が定義されていないか、' 0'に定義されています –

+0

@FlorianLemaitreありがとう、私はばかです。 id列にはauto_incrementを設定しません。そして、ここに私はprob、どのように可能な、モジュールがインストールされている。 :D –

答えて

1

ps_moduleテーブル構造のauto_incrementの値を確認できますか? auto_incrementが定義されていないか、0に設定されている可能性があります。

この場合、データベースの移行中にエラーが発生したか、別のモジュールをauto_incrementと混同してインストールした可能性があります。

関連する問題