magento ------------------连接数据库-----进行操作的方法,方式!!!精***

本文主要是介绍magento ------------------连接数据库-----进行操作的方法,方式!!!精***,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

magento连接数据库的方法:
1

简单方式。限制性小

1.1

$write = Mage::getSingleton('core/resource')->getConnection('core_write');
$readresult=$write->query("SELECT eav_attribute_option_value.option_id, eav_attribute_option_value.value FROM eav_attribute_option_value

INNER JOIN eav_attribute_option ON eav_attribute_option_value.option_id=eav_attribute_option.option_id WHERE

eav_attribute_option.attribute_id=505 AND eav_attribute_option_value.option_id IN (".$brands.")");

while ($row = $readresult->fetch() ) {
    $brandlist[] = array('value'=>$row['option_id'], 'label'=>$row['value']);
}

 

1.2

$resource = Mage::getSingleton('core/resource'); 
$read = $resource->getConnection('catalog_read');

 $select = $read->select()
//得到zend_db_select
                       ->from(array('cp'=>$categoryProductTable)) 
                       ->join(array('pei'=>$productEntityIntTable),'pei.entity_id=cp.product_id', array()) 
                       ->joinNatural(array('ea'=>$eavAttributeTable)) 
                       ->where('cp.category_id=?', $categoryId) 
                       ->where('pei.value=1') 
                       ->where('ea.attribute_code="terry"'); 
 
                       $rows = $read->fetchAll($select); 
    $ids = array();
          foreach($rows AS $row) { 
            $ids[] = $row['product_id']; 
        } 
        $ret = implode(',', $ids); 
        return $ids;

2
一般用于magento,产品,分类等信息的修改。
通过
此处一般说的是eav模型中的collection
 Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection
只要实现了下面的类的类,
Varien_Data_Collection
都可以使用
 public function getSelect()
    {
        $this->_select = $this->_conn->select();
    return $this->_select;
    }
得到 Varien_Db_Select。
3
对于单个产品的查询和修改

根据ID值。或者唯一值。
$model  = Mage::getModel('blog/blog')->load($id);


该方式信息比较全面。

4
$coll = Mage::getModel('blog/tag')->getCollection();
       
        $sel = $coll->getSelect();
       
        $coll->getSelect()


5
对于Mage::getResourceModel()
和Mage::getModel()->getCollection();

得到的都是Get collection instance

_setResourceModel($resourceName, $resourceCollectionName=null)


5.1 Mage::getResourceModel()
和Mage::getModel()->getCollection()
和Eav模型,都可以使用getSelect();

6
Mage_Core_Model_Mysql4_Abstract


1
非eav模型:
1.1

resource collection model:
AW_Blog_Model_Mysql4_Blog_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
 Mage_Core_Model_Mysql4_Collection_Abstract extends Varien_Data_Collection_Db
Varien_Data_Collection_Db extends Varien_Data_Collection

1.2
resource model
AW_Blog_Model_Mysql4_Blog extends Mage_Core_Model_Mysql4_Abstract
Mage_Core_Model_Mysql4_Abstract extends Mage_Core_Model_Resource_Abstract




2
对于eav模型:
2.1
resource collection model:
Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collectionextends Mage_Catalog_Model_Resource_Eav_Mysql4_Collection_Abstract
Mage_Catalog_Model_Resource_Eav_Mysql4_Collection_Abstract extends Mage_Eav_Model_Entity_Collection_Abstract
Mage_Eav_Model_Entity_Collection_Abstract extends Varien_Data_Collection_Db
Varien_Data_Collection_Db extends Varien_Data_Collection


2.2
resource model
class Mage_Catalog_Model_Resource_Eav_Mysql4_Abstract extends Mage_Eav_Model_Entity_Abstract
Mage_Eav_Model_Entity_Abstract
    extends Mage_Core_Model_Resource_Abstract
    implements Mage_Eav_Model_Entity_Interface


model--->
_getResource(得到resource model)


在resource中,可以使用的方法:
_getReadAdapter()
_getWriteAdapter()---->进而可以通过方法 public function select()得到Varien_Db_Select;

这篇关于magento ------------------连接数据库-----进行操作的方法,方式!!!精***的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/845290

相关文章

VScode连接远程Linux服务器环境配置图文教程

《VScode连接远程Linux服务器环境配置图文教程》:本文主要介绍如何安装和配置VSCode,包括安装步骤、环境配置(如汉化包、远程SSH连接)、语言包安装(如C/C++插件)等,文中给出了详... 目录一、安装vscode二、环境配置1.中文汉化包2.安装remote-ssh,用于远程连接2.1安装2

Java中List转Map的几种具体实现方式和特点

《Java中List转Map的几种具体实现方式和特点》:本文主要介绍几种常用的List转Map的方式,包括使用for循环遍历、Java8StreamAPI、ApacheCommonsCollect... 目录前言1、使用for循环遍历:2、Java8 Stream API:3、Apache Commons

Python判断for循环最后一次的6种方法

《Python判断for循环最后一次的6种方法》在Python中,通常我们不会直接判断for循环是否正在执行最后一次迭代,因为Python的for循环是基于可迭代对象的,它不知道也不关心迭代的内部状态... 目录1.使用enuhttp://www.chinasem.cnmerate()和len()来判断for

Java循环创建对象内存溢出的解决方法

《Java循环创建对象内存溢出的解决方法》在Java中,如果在循环中不当地创建大量对象而不及时释放内存,很容易导致内存溢出(OutOfMemoryError),所以本文给大家介绍了Java循环创建对象... 目录问题1. 解决方案2. 示例代码2.1 原始版本(可能导致内存溢出)2.2 修改后的版本问题在

PyCharm接入DeepSeek实现AI编程的操作流程

《PyCharm接入DeepSeek实现AI编程的操作流程》DeepSeek是一家专注于人工智能技术研发的公司,致力于开发高性能、低成本的AI模型,接下来,我们把DeepSeek接入到PyCharm中... 目录引言效果演示创建API key在PyCharm中下载Continue插件配置Continue引言

使用Python实现操作mongodb详解

《使用Python实现操作mongodb详解》这篇文章主要为大家详细介绍了使用Python实现操作mongodb的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、示例二、常用指令三、遇到的问题一、示例from pymongo import MongoClientf

关于rpc长连接与短连接的思考记录

《关于rpc长连接与短连接的思考记录》文章总结了RPC项目中长连接和短连接的处理方式,包括RPC和HTTP的长连接与短连接的区别、TCP的保活机制、客户端与服务器的连接模式及其利弊分析,文章强调了在实... 目录rpc项目中的长连接与短连接的思考什么是rpc项目中的长连接和短连接与tcp和http的长连接短

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

一文详解Python中数据清洗与处理的常用方法

《一文详解Python中数据清洗与处理的常用方法》在数据处理与分析过程中,缺失值、重复值、异常值等问题是常见的挑战,本文总结了多种数据清洗与处理方法,文中的示例代码简洁易懂,有需要的小伙伴可以参考下... 目录缺失值处理重复值处理异常值处理数据类型转换文本清洗数据分组统计数据分箱数据标准化在数据处理与分析过

Java中Object类的常用方法小结

《Java中Object类的常用方法小结》JavaObject类是所有类的父类,位于java.lang包中,本文为大家整理了一些Object类的常用方法,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. public boolean equals(Object obj)2. public int ha