2014-01-21 434 views
1

我即將把我的頭髮拉出來......爲什麼不這樣做呢?原始刪除查詢

Mage::getSingleton('core/resource')->getConnection('core_write')->query('DELETE FROM catalog_product_super_attribute WHERE product_id = 46'); 

當我運行通過命令行或phpMyAdmin的該查詢甚至,它執行就好了刪除所有行然而,當我嘗試使用代碼它不工作運行它。我甚至試圖繞過Magento希望它是與他們的東西,但是當我試圖刪除使用直接mysql或mysqli在PHP它也不會工作。

任何想法或建議將是真棒。

+0

任何錯誤信息將有助於我們幫助你... – Enriqe

+0

我不知道爲什麼「的Magento」從標題中刪除,因爲也許一個SQL的問題,但其有關的範圍內工作的SQL問題Magento ..我認爲這對於想要點擊我的問題並幫助解決問題的人來說是非常重要的信息。 – Banning

+0

@Enriqe我看到的唯一錯誤消息是'用戶錯誤:一些事務沒有被提交或回滾'在magento的system.log文件中 – Banning

回答

1
$transaction = Mage::getSingleton('core/resource')->getConnection('core_write'); 

try { 
    $transaction->beginTransaction(); 

    $transaction->query('DELETE FROM catalog_product_super_attribute WHERE product_id = 46'); 

    $transaction->commit(); 
} catch (Exception $e) { 
    $transaction->rollBack(); // if anything goes wrong, this will undo all changes you made to your database 
} 
+0

Nononono這裏的答案是什麼工作http://stackoverflow.com/questions/2953697/ magento-data-is-not-inserted-into-database-but-the-id-is-autoincremented ...添加了';提交;'到實際查詢本身的末尾:P – Banning

+0

您是否介意我編輯您的答案以適應我的工作,然後我可以將其標記爲正確? – Banning

+0

這是一樣的。它更短,它也有'try .. catch'塊,您可以捕獲任何錯誤並撤銷對數據庫所做的任何更改。 – Enriqe