【问题标题】:Raw Delete Query原始删除查询
【发布时间】:2014-01-21 21:42:42
【问题描述】:

我要拔头发了……为什么不跑?

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

当我通过命令行或 phpmyadmin 运行该查询时,它执行得很好,删除所有行但是当我尝试使用代码运行它时它不起作用。我什至尝试绕过 Magento 希望它与他们有关,但是当我尝试在 php 中使用直接 mysql 或 mysqli 删除时,它也不起作用。

任何想法或建议都会很棒。

【问题讨论】:

  • 任何错误信息都会帮助我们帮助您...
  • 我不确定为什么将“Magento”从标题中删除,因为它可能是一个 SQL 问题,但它是一个关于在 Magento 范围内工作的 SQL 问题。我认为这很重要想要点击进入我的问题并提供帮助的人的信息。
  • @Enriqe 我看到的唯一错误消息是magento的system.log文件中的User Error: Some transactions have not been committed or rolled back
  • 您是否尝试过提交交易?我希望你知道我在说什么。
  • @Enriqe 对不起,我没有...我会搜索并找出你的意思:)

标签: mysql sql magento delete-row


【解决方案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
}

【讨论】:

  • Nononono 这里的答案是stackoverflow.com/questions/2953697/… ...将; commit; 添加到实际查询本身的末尾:P
  • 您介意我编辑您对什么对我有用的答案,然后我可以将其标记为正确吗?
  • 这是一样的。它更短,还有try .. catch 块,您可以在其中捕获任何错误并撤消对数据库所做的任何更改。
  • 但是做你想做的事。重要的是我给了你正确的踢法:) - 现在你可以标记我的答案了:)
  • 当我尝试这个时它没有工作。我不得不使用; commit;
猜你喜欢
  • 2019-07-24
  • 2018-04-30
  • 2021-03-22
  • 2014-03-06
  • 2016-01-08
  • 2018-09-22
  • 1970-01-01
  • 2015-11-21
  • 2012-10-29
相关资源
最近更新 更多