安装Prestashop模块时出现MySQL错误

时间:2016-06-23 13:48:12

标签: mysql module prestashop

我为prestashop制作了模块。只需将基本管理表单写入DB即可。但是当我尝试在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 for 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。

1 个答案:

答案 0 :(得分:1)

您可以查看auto_increment表格结构的ps_module值吗?可能auto_increment未定义或设置为0。

如果是这种情况,您可能在数据库迁移期间遇到错误或安装了另一个与auto_increment混淆的模块。