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

相关文章

C#之List集合去重复对象的实现方法

《C#之List集合去重复对象的实现方法》:本文主要介绍C#之List集合去重复对象的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C# List集合去重复对象方法1、测试数据2、测试数据3、知识点补充总结C# List集合去重复对象方法1、测试数据

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流

SpringBoot读取ZooKeeper(ZK)属性的方法实现

《SpringBoot读取ZooKeeper(ZK)属性的方法实现》本文主要介绍了SpringBoot读取ZooKeeper(ZK)属性的方法实现,强调使用@ConfigurationProperti... 目录1. 在配置文件中定义 ZK 属性application.propertiesapplicati

Java Multimap实现类与操作的具体示例

《JavaMultimap实现类与操作的具体示例》Multimap出现在Google的Guava库中,它为Java提供了更加灵活的集合操作,:本文主要介绍JavaMultimap实现类与操作的... 目录一、Multimap 概述Multimap 主要特点:二、Multimap 实现类1. ListMult

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI

Java调用C#动态库的三种方法详解

《Java调用C#动态库的三种方法详解》在这个多语言编程的时代,Java和C#就像两位才华横溢的舞者,各自在不同的舞台上展现着独特的魅力,然而,当它们携手合作时,又会碰撞出怎样绚丽的火花呢?今天,我们... 目录方法1:C++/CLI搭建桥梁——Java ↔ C# 的“翻译官”步骤1:创建C#类库(.NET

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

RedisTemplate默认序列化方式显示中文乱码的解决

《RedisTemplate默认序列化方式显示中文乱码的解决》本文主要介绍了SpringDataRedis默认使用JdkSerializationRedisSerializer导致数据乱码,文中通过示... 目录1. 问题原因2. 解决方案3. 配置类示例4. 配置说明5. 使用示例6. 验证存储结果7.

Java 枚举的基本使用方法及实际使用场景

《Java枚举的基本使用方法及实际使用场景》枚举是Java中一种特殊的类,用于定义一组固定的常量,枚举类型提供了更好的类型安全性和可读性,适用于需要定义一组有限且固定的值的场景,本文给大家介绍Jav... 目录一、什么是枚举?二、枚举的基本使用方法定义枚举三、实际使用场景代替常量状态机四、更多用法1.实现接

java String.join()方法实例详解

《javaString.join()方法实例详解》String.join()是Java提供的一个实用方法,用于将多个字符串按照指定的分隔符连接成一个字符串,这一方法是Java8中引入的,极大地简化了... 目录bVARxMJava String.join() 方法详解1. 方法定义2. 基本用法2.1 拼接