我完全不知道最新情况。
我正在尝试INSERT
进入ps_search_index
这样的表:
$sql = 'INSERT INTO ps_search_index (id_product,id_word,weight)
VALUES ('.$id_product.','.$getID.',9)';
Db::getInstance()->Execute($sql);
如果有$id_product
则无效。
但是当我写作时,它的工作。 1234. id_product
当然是INT
,而且这个地方的任何其他价值都有效。
当然没有其他错误。 我该怎么办?
答案 0 :(得分:2)
试试这个:
Db::getInstance()->execute('
INSERT INTO '._DB_PREFIX_.'search_index (id_product, id_word, weight)
VALUES ('.(int)$id_product.', '.(int)$getID.', 9)
ON DUPLICATE KEY UPDATE weight = weight + VALUES(weight)', false
);
我总是建议投射var。在这种情况下,您必须添加ON DUPLICATE...
,就像在Search
类中一样。
答案 1 :(得分:1)
答案 2 :(得分:1)
在PrestaShop的ps_search_index
数据库表中,id_product
和id_word
的组合是表格的主键。
由于任何数据库表的主键必须是唯一的,因此您的查询失败,因为您在查询中添加的组合必须已存在于表中。为了解决这个问题,您可以在插入任何新行之前应用检查。