![1062重複條目] [2] 在Magento的產品創建代碼,添加自己的自定義代碼在/htdocs/magento/app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php我有使外部連接mysql &使用在自定義表中插入產品ID & SKU(我知道這是不推薦的方式,但只是用於測試目的,我這樣做。)Magento產品創建錯誤... SQLSTATE [23000]:完整性約束違規:1062重複條目?
我的代碼 - :
public function saveAction()
{
$storeId = $this->getRequest()->getParam('store');
$redirectBack = $this->getRequest()->getParam('back', false);
$productId = $this->getRequest()->getParam('id');
$isEdit = (int)($this->getRequest()->getParam('id') != null);
$data = $this->getRequest()->getPost();
if ($data) {
if (!isset($data['product']['stock_data']['use_config_manage_stock'])) {
$data['product']['stock_data']['use_config_manage_stock'] = 0;
}
$product = $this->_initProductSave();
try {
$product->save();
$productId = $product->getId();
//-------My code start---------------------------------
$db_name = "magento";
$con = mysql_connect ("www.xyz.com", "magento", "password");
If(!$con)
{
die('Could not connect: ' . mysql_error());
mysql_close($con);
}
$seldb = mysql_select_db($db_name, $con);
$query_fetch = "SELECT cpe.entity_id, cpe.sku FROM catalog_product_entity cpe
WHERE cpe.entity_id = ".$productId;
$result_query_fetch = mysql_query($query_fetch);
while($row = mysql_fetch_array($result_query_fetch))
{
$entity_id = ($row["entity_id"]);
$sku = ($row["sku"]);
$result_fetch = "$entity_id".",'".$sku."'";
}
$query_insert = "INSERT into product_creation(entity_id,sku,creation_date) VALUES(".$result_fetch.", NOW())";
$result_insert = mysql_query($query_insert);
mysql_close($con);
//--------------------------My code End-----------------------------------------
/**
* Do copying data to stores
*/
if (isset($data['copy_to_stores'])) {
foreach ($data['copy_to_stores'] as $storeTo=>$storeFrom) {
$newProduct = Mage::getModel('catalog/product')
->setStoreId($storeFrom)
->load($productId)
->setStoreId($storeTo)
->save();
}
}
Mage::getModel('catalogrule/rule')->applyAllRulesToProduct($productId);
$this->_getSession()->addSuccess($this->__('The product has been saved.'));
}
catch (Mage_Core_Exception $e) {
$this->_getSession()->addError($e->getMessage())
->setProductData($data);
$redirectBack = true;
}
catch (Exception $e) {
Mage::logException($e);
$this->_getSession()->addError($e->getMessage());
$redirectBack = true;
}
}
if ($redirectBack) {
$this->_redirect('*/*/edit', array(
'id' => $productId,
'_current'=>true
));
}
else if($this->getRequest()->getParam('popup')) {
$this->_redirect('*/*/created', array(
'_current' => true,
'id' => $productId,
'edit' => $isEdit
));
}
else {
$this->_redirect('*/*/', array('store'=>$storeId));
}
}
所以從這段代碼,產品數據被插入到兩個表中,但我是得到錯誤作爲
SQLSTATE [23000]:完整性約束衝突:關鍵 'IDX_STOCK_PRODUCT'
可有人plz幫助我解決這個問題,1062重複項 '1949-1' ......
解決方案我tried-:
-remove在/ var /緩存&在/ var /會話
- 清除瀏覽器緩存&餅乾
- 在應用程序的/ etc/config.xml中,改變這種
SET NAMES UTF8 這個
SET NAMES UTF8; SET FOREIGN_KEY_CHECKS = 0; SET UNIQUE_CHECKS = 0;
仍然有相同的錯誤...或者PLZ告訴我,我應該改變我的代碼?
PS-我知道,這是不推薦的方式,我改變核心文件的代碼&也使用外部連接,而不是使用Zend連接...但它只是用於測試目的...
是有沒有解決這個問題的方法?
plz幫助我...
plz建議我解決一些問題......我該怎麼辦? – Prat 2012-04-14 12:31:49
請勿插入重複項。 – 2012-04-14 12:32:08
你的意思是說,我不能通過這種方式在定製表中插入數據... – Prat 2012-04-14 12:34:01