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

相关文章

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

如何通过try-catch判断数据库唯一键字段是否重复

《如何通过try-catch判断数据库唯一键字段是否重复》在MyBatis+MySQL中,通过try-catch捕获唯一约束异常可避免重复数据查询,优点是减少数据库交互、提升并发安全,缺点是异常处理开... 目录1、原理2、怎么理解“异常走的是数据库错误路径,开销比普通逻辑分支稍高”?1. 普通逻辑分支 v

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编