! [1062 Doppelter Eintrag] [2] In Magentos Produkt-Erstellungscode füge ich meinen eigenen benutzerdefinierten Code in /htdocs/magento/app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php I hinzu machen externe mySQL-Verbindung & verwenden, die Produkt-ID & sku in benutzerdefinierten Tabelle zum Einfügen (ich weiß, auf diese Weise wird nicht empfohlen, aber nur für Testzwecke ich dies tue.)Fehler beim Erstellen des Magento-Produkts ... SQLSTATE [23000]: Verletzung der Integritätsbedingung: 1062 Eintrag duplizieren?
Mein Code-.
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));
}
}
Also von diesem Code werden Produktdaten in beiden Tabellen eingefügt, aber ich bin Fehler immer als
SQLSTATE [23000]: Integrität Einschränkungsverletzung: 1062 doppelte Eintrag '1949-1' für Schlüssel 'IDX_STOCK_PRODUCT'
Kann jemand plz mir helfen, dieses Problem zu beheben ...
ichLösung tried-:
-remove/var/cache &/var/session
-clear Browser-Cache & Cookies
-Im app/etc/config.xml, This Unsere
SET NAMES utf8 utf8 zu
SET NAMES ändern; SET FOREIGN_KEY_CHECKS = 0; SET UNIQUE_CHECKS = 0;
Immer noch den gleichen Fehler ... Oder PLZ sagen mir, was soll ich in meinem Code ändern?
PS- Ich weiß, dass dies nicht Art und Weise wird empfohlen, da ich Code von Core-Dateien am Wechsel & auch externe Verbindung mit anstatt ZEND Verbindung ... aber es ist nur für Testzwecke ...
Ist Gibt es eine Lösung für dieses Problem?
plz help me ...
plz schlage mir eine Lösung vor ... was soll ich tun? – Prat
Keine Duplikate einfügen. –
Ich meine, ich kann auf diese Weise keine Daten in eine benutzerdefinierte Tabelle einfügen ... – Prat