`
yanggaojiao
  • 浏览: 81786 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Magento中直接使用SQL查询语句

阅读更多

本文已移到:http://www.iifire.com
Magento 和 zend framework 的DB层都完全实现了抽象(封装成类了),这样方便我们在使用数据库资源时直接调用相关的Resource类而不用理会DB底层的具体实现方法,会用就可。但是我们有时候希望能直接使用SQL语句来从表中查询和更新数据,该怎么办呢?当然Magento中提供了相关的方法,如下:

$conn = Mage::getSingleton('core/resource')->getConnection('core_read');
 

上面的的语句返回 Varien_Db_Adapter_Pdo_Mysql对象的一个实例( Zend_Db_Adapter_Abstract 的子类), 该类提供了直接调用SQL语句的方法.例:

// Prints a list of all website names
$results = $conn->fetchAll("SELECT * FROM core_website;");
foreach($results as $row) {
    echo $row['name'] . "\n";
}
 

注意上面的getConnection()方法中的参数 "core_read",表明了Magento将要使用的资源。与之相对应,当我们修改数据库的时候使用参数"core_write".一般情况下getConnection方法的参数应设成"core_read" 或 "core_write"(应该不指定也是可以的,但是如果Magento有多个数据库就必须指定了)。

作为新的entension module,在config.xml对"core_read" "core_write" 进行定义是个好的习惯。定义如下: c

<config>
    <global>
        <resources>
            <extension_setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </extension_setup>
            <extension_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </extension_read>
            <extension_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </extension_write>
        </resources>
    </global>
</config>
 

对应上面新增的module的名字.使用下面相对应的语句在read或write Database:

$conn = Mage::getSingleton('core/resource')->getConnection('extension_read');
$conn = Mage::getSingleton('core/resource')->getConnection('extension_write');
 

一般情况是绝大多数的module都定义成"core_read" "core_write"方便且节省资源。当然特殊情况除外:

  • 给每个module不同的读写权限
  • 需要用多个Database

 

 

分享到:
评论

相关推荐

    magento导出数据sql

    首先,`magento导出数据sql`是指使用SQL语句来提取Magento数据库中的数据。这通常涉及到备份、分析或迁移数据到其他系统。在Magento中,数据主要存储在MySQL数据库中,因此我们可以通过以下几种方式来导出数据: 1....

    magento删除订单sql

    - **批量删除操作**:如果需要批量删除多个订单,可以修改SQL语句中的条件表达式,使用IN关键字或者循环执行上述语句。 - **数据库性能**:频繁执行大量数据的删除操作可能会对数据库性能造成一定影响。建议在非高峰...

    magento产品名称及描述批量修改sql

    这可以通过在UPDATE语句中添加WHERE子句实现。例如,如果只想修改特定类别的产品,可以添加`AND eav.entity_type_id = (SELECT entity_type_id FROM eav_entity_type WHERE entity_type_code = 'catalog_category')`...

    magento数据库批量导出产品及自定义属性语句

    本篇文章将详细探讨如何使用MySQL语句在Magento环境中实现这个功能。 首先,我们要理解Magento的产品数据存储结构。Magento将产品信息分散在多个数据库表中,主要包括`catalog_product_entity`作为主产品表,以及一...

    magento商城数据库

    3. **导入数据**:使用数据库管理工具(如 phpMyAdmin、MySQL Workbench 或命令行客户端)连接到你的 MySQL 服务器,然后运行 SQL 文件中的语句。这会创建 Magento 需要的所有表,包括 `catalog_product_entity`...

    magento certified developer 认证 题库

    **解释**:在Magento中,对产品集合进行过滤时,可以使用标准的SQL查询语句结构,通过OR条件组合不同的筛选标准,从而实现复杂的数据筛选需求。 #### 题目四:管理员路由的ACL保护 **题目描述**:以下哪些条件用于...

    Magento(DeveloperToolBar)

    2. **SQL查询查看**:它允许开发者查看和分析执行的每个数据库查询,包括查询语句、执行时间以及影响行数,帮助定位慢查询并优化数据库性能。 3. **模板路径提示**:在前端页面上,点击任何元素,开发者都能看到...

    magento入门文档

    启用模型意味着让Magento知道这个模型的存在,并且可以在系统中使用它。这通常是在配置文件中完成的。 **4.5 启用资源模型** 资源模型负责处理数据库操作,它通常是模型的一部分。启用资源模型意味着指定哪个类...

    magento导入数据库

    当涉及到Magento站点的迁移时,一个常见的方法是通过使用PHPMyAdmin来导入数据库,这种方法不仅高效,而且能够确保数据的完整性和一致性。下面,我们将深入探讨Magento通过PHPMyAdmin方式做站点迁移的具体步骤、注意...

    magento新建数据表后进行增,删,改操作

    ### Magento新建数据表后的增、删、改操作详解 在Magento平台中,对数据库...通过对模型的合理利用、避免重复加载、使用预处理语句、参数化查询等方式,可以有效提高代码的安全性和性能。希望这些内容能对你有所帮助。

    magento后台批量删除或更改产品属性[参考].pdf

    以下是用于批量删除Magento产品的一些关键SQL语句: 1. `TRUNCATE TABLE `catalog_product_bundle_option`;`: 这条命令清空了与捆绑产品选项相关的表,用于存储捆绑产品配置。 2. `TRUNCATE TABLE `catalog_...

    magento-custom-address:一个简单的模块,可将“邻居”和“互补”字段添加到Magento商店中的客户地址

    这通常通过安装脚本(如`sql`文件夹中的SQL语句)完成,这些脚本会在模块安装时执行,更新Magento的地址表结构。 3. **模型和资源模型**:模块需要包含模型类,用于处理数据库操作。资源模型是Magento中与数据库...

    fresh-magento:新鲜的magento

    - **数据库优化**:理解索引和查询优化对Magento性能的影响。 - **页面速度优化**:减少HTTP请求、压缩资源、合并CSS和JS文件等技巧。 - **部署和负载均衡**:在生产环境中,可能需要设置多个服务器进行负载均衡,...

    magento2_sd

    5. **模板引擎**:Magento 2 使用PHTML文件作为视图层,结合了PHP和HTML,提供了强大的模板引擎,支持变量、条件语句和循环结构。 6. **RESTful API**:Magento 2 提供了RESTful API,允许第三方应用与平台进行数据...

    magento-practice

    开发者需要掌握如何在模板中使用变量、条件语句和循环,以及如何布局和样式化页面。 6. **主题与皮肤** Magento 允许通过主题和皮肤来改变网站的外观。理解如何创建和编辑 layout XML 文件,以及 CSS 和 ...

    PostgreSQL和MySQL中文手册 chm

    **MySQL5.1_DOC_CN.chm**涵盖了MySQL 5.1版本的详细文档,包括安装与配置、SQL语句、存储引擎、触发器、视图、用户权限管理等内容。对于那些使用或升级到5.1版本的用户来说,这是一个非常有价值的参考资料。 **...

    phpadmin 操作数据库

    5. **查询工具**:phpMyAdmin 提供了SQL查询编辑器,允许用户编写复杂的SQL语句执行查询、更新、插入和删除操作。它还支持查询结果的可视化展示,如图表和表格。 6. **权限管理**:管理员可以通过phpMyAdmin管理...

    hanshunpingPHP_21天学通php_源码.zip

    6. **MySQL数据库操作**:连接MySQL数据库,执行SQL查询,处理结果集,以及事务处理等。 7. **PHP与HTML结合**:如何在HTML中嵌入PHP代码,实现动态网页。 8. **表单处理**:学习如何接收和处理用户提交的表单数据...

    php从入门到精通官方API手册

    如PHP的CLI(命令行接口)使用、Web服务(如SOAP和RESTful API)的开发、会话管理、cookie的使用、安全实践(如防止SQL注入和XSS攻击)以及PHP与其他技术的整合,如WordPress、Magento等流行的PHP框架或CMS系统。...

Global site tag (gtag.js) - Google Analytics