删除产品图片后保存产品时出错 - Magento ver。 1.8.1.0

Error saving product after removing product images - Magento ver. 1.8.1.0

我一直在尝试 add/edit 图片到 magento 产品。

我有这个代码

require_once("../test/app/Mage.php");
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$simpleProduct = Mage::getModel('catalog/product');
$simpleProduct->load($_POST['id_in_magento']);
$mediaApi = Mage::getModel("catalog/product_attribute_media_api");
$mediaApiItems = $mediaApi->items($simpleProduct->getId());

foreach ($mediaApiItems as $item) {
    $datatemp = $mediaApi->remove($simpleProduct->getId(), $item['file']);
}
$simpleProduct->getResource()->save($simpleProduct);

foreach (unserialize($_POST['product_groups_images']) as $img) {
    $simpleProduct->addImageToMediaGallery($img, array('image', 'small_image', 'thumbnail'), false, false);
}
// ERROR on this line...
$simpleProduct->getResource()->save($simpleProduct);

此代码既有效又无效。方法如下。

1) 如果产品没有图片,则代码有效。

2) 如果产品之前有图片,它会成功删除图片(我已经从产品前端确认 link 图片已删除),但随后(尝试) 添加图像并在尝试保存时发生错误。

这是完全错误

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (coszi_test.catalog_product_entity_media_gallery_value, CONSTRAINT FK_CAT_PRD_ENTT_MDA_GLR_VAL_VAL_ID_CAT_PRD_ENTT_MDA_GLR_VAL_ID FOREIGN KEY (value_id) REFERENCES catalog_product_enti)

像这样更改代码

 foreach ($mediaApiItems as $item) {
    $datatemp = $mediaApi->remove($simpleProduct->getId(), $item['file']);
}
$simpleProduct->getResource()->save($simpleProduct);

    foreach ($mediaApiItems as $item) {
    $datatemp = $mediaApi->remove($simpleProduct->getId(), $item['file']);
}

删除这个存档

$simpleProduct->getResource()->save($simpleProduct);

希望有用..