2016-05-15 42 views
0

我有点混乱。我正在使用magento orm basic,例如Mage::getModel('test/test'),我搜索那也使用直接SQL查询用于插入,更新和删除,所以我的问题是哪一个更好,如果我使用直接SQL查询,所以在将来出现安全问题或安全的直接SQL在magento中查询?哪一个更好呢?请指导我Magento直接SQL查询和magento orm基本

回答

0

对于大多数/所有操作,您应该使用Mage :: getModel()。例如,当你有模型重写时,你需要使用Mage :: getModel()来重写这些重写。

此外,使用Mage :: getModel()有助于确保在必要时触发任何事件观察者。当你使用直接SQL时,你会绕过Magento久经考验的方法,如果你不确定自己在做什么,就会进入危险的领域。

尽可能地坚持使用Magento的本地方法来维护数据的完整性。

+0

感谢您的回答,但直接SQL的用途是什么?在直接SQL的magento中的任何目的? –

+0

直接sql会输出一条语句,比如'INSERT INTO catalog_product_entity ....'。 Magento有一个架构,其中几乎所有的数据库操作都包含在方法中。在Magento中,当你多次与数据库交互时,其他逻辑也需要执行。 Magento的本地数据库方法考虑到了这一点,重点是保持数据库交互的安全性,这意味着不太可能会导致数据库无法使用。 –

+0

感谢您的回答 –