Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Magento 1.7.0.2重新索引产品属性错误_Php_Mysql_Magento_Magento 1.7 - Fatal编程技术网

Php Magento 1.7.0.2重新索引产品属性错误

Php Magento 1.7.0.2重新索引产品属性错误,php,mysql,magento,magento-1.7,Php,Mysql,Magento,Magento 1.7,在对Magento 1.7.0.2中的产品属性重新编制索引时,我们发现以下错误: Product Attributes index process unknown error: exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`x

在对Magento 1.7.0.2中的产品属性重新编制索引时,我们发现以下错误:

Product Attributes index process unknown error:
exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`xxdbnamexx`.`mage_catalog_product_index_eav`, CONSTRAINT `FK_CAT_PRD_IDX_EAV_ENTT_ID_CAT_PRD_ENTT_ENTT_ID` FOREIGN KEY (`entity_id`) REFERENCES `mage_catalog_product_entity` (`entity_id)' in /home/xxxxxxxxx/public_html/lib/Zend/Db/Statement/Pdo.php:228
Stack trace:
#0 /home/xxxxxxxxx/public_html/lib/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array)
#1 /home/xxxxxxxxx/public_html/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)
#2 /home/xxxxxxxxx/public_html/lib/Zend/Db/Statement.php(300): Varien_Db_Statement_Pdo_Mysql->_execute(Array)
#3 /home/xxxxxxxxx/public_html/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#4 /home/xxxxxxxxx/public_html/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('INSERT INTO `ma...', Array)
#5 /home/xxxxxxxxx/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(419): Zend_Db_Adapter_Pdo_Abstract->query('INSERT INTO `ma...', Array)
#6 /home/xxxxxxxxx/public_html/app/code/core/Mage/Index/Model/Resource/Abstract.php(179): Varien_Db_Adapter_Pdo_Mysql->query('INSERT INTO `ma...')
#7 /home/xxxxxxxxx/public_html/app/code/core/Mage/Index/Model/Resource/Helper/Mysql4.php(48): Mage_Index_Model_Resource_Abstract->insertFromSelect(Object(Varien_Db_Select), 'mage_catalog_pr...', Array, false)
#8 /home/xxxxxxxxx/public_html/app/code/core/Mage/Index/Model/Resource/Abstract.php(153): Mage_Index_Model_Resource_Helper_Mysql4->insertData(Object(Mage_Catalog_Model_Resource_Product_Indexer_Eav_Source), Object(Varien_Db_Select), 'mage_catalog_pr...', Array, false)
#9 /home/xxxxxxxxx/public_html/app/code/core/Mage/Index/Model/Resource/Abstract.php(113): Mage_Index_Model_Resource_Abstract->insertFromTable('mage_catalog_pr...', 'mage_catalog_pr...', false)
#10 /home/xxxxxxxxx/public_html/app/code/core/Mage/Catalog/Model/Resource/Product/Indexer/Eav/Abstract.php(54): Mage_Index_Model_Resource_Abstract->syncData()
#11 /home/xxxxxxxxx/public_html/app/code/core/Mage/Catalog/Model/Resource/Product/Indexer/Eav.php(185): Mage_Catalog_Model_Resource_Product_Indexer_Eav_Abstract->reindexAll()
#12 /home/xxxxxxxxx/public_html/app/code/core/Mage/Index/Model/Indexer/Abstract.php(143): Mage_Catalog_Model_Resource_Product_Indexer_Eav->reindexAll()
#13 /home/xxxxxxxxx/public_html/app/code/core/Mage/Index/Model/Process.php(209): Mage_Index_Model_Indexer_Abstract->reindexAll()
#14 /home/xxxxxxxxx/public_html/app/code/core/Mage/Index/Model/Process.php(255): Mage_Index_Model_Process->reindexAll()
#15 /home/xxxxxxxxx/public_html/shell/indexer.php(158): Mage_Index_Model_Process->reindexEverything()
#16 /home/xxxxxxxxx/public_html/shell/indexer.php(198): Mage_Shell_Compiler->run()
#17 {main}

有人可以提供帮助吗?

错误消息显示,您尝试执行的操作违反了mage\u catalog\u product\u index\u eav和mage\u catalog\u product\u实体之间的外键约束

这意味着您在mage_catalog_product_index_eav表中有实体ID,而在mage_catalog_product_entity表中没有实体ID。这可能是因为mage_catalog_product_entity中的某些实体_ID为空

也可能是因为mage_catalog_product_index_eav试图引用的记录根本不存在。在这种情况下,您可以从mage_catalog_product_index_eav中删除引用记录


在任何情况下,您都必须准确地找出违规记录。请查看上的第一个答案,以获取有关如何执行此操作的提示。这不是完全相同的问题,因为他们处理的是平面数据,但我认为仍然有用。

嗨,谢谢你的帮助。尝试运行以下查询,但未返回任何结果:从mage\u catalog\u product\u index\u eav中选择a.entity\u id作为左连接mage\u catalog\u product\u entity作为a.entity\u id=b.entity\u id,其中ISNULLb.entity\u id在仔细查看您的错误后,我意识到这是由于将entity\u id插入mage\u catalog\u product\u index\u eav中造成的。因此,索引器似乎试图在索引表中为不存在的产品创建记录。看看用户olivenet在这里做了什么:其要点是临时从mage_catalog_product_index_eav中删除外键约束。完成后别忘了把它放回去!然后再次运行索引器。现在,您应该能够找到问题产品。