`
天梯梦
  • 浏览: 13741990 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

Magento 数据库查询速记 select, insert, update, and delete data

 
阅读更多

 

Snip20151109_3

 

 

query.php

<?php

include_once 'app/Mage.php';

Mage::app();



//====================================================================


//$product  = Mage::getModel('catalog/product')->load(1);
//echo '<pre>'; print_r($product); echo '</pre>';

/*
 *  select query
 */
 
// First Way
//$description = $product->getData('description');

// Second Way
//$description = $product->getDescription();

//echo '<pre>'; print_r($description); echo '</pre>';


/*
 *  update query
 */
 
// First Way
//$product->setData('description','text updated')->save();

// Second Way
//$product->setDescription('text updated')->save();



/*
 *  delete query
 */

 //$product->delete();


//====================================================================

// no attributes

/*
$products  = Mage::getModel('catalog/product')->getCollection();

foreach($products as $product)
{
    echo '<pre>'; print_r($product); print_r($product->getData()); echo '</pre>';
}
*/

// with attributes 
/*
$products  = Mage::getModel('catalog/product')->getCollection()
            ->addAttributeToSelect(array('name','price','description')) // selected fields or ->addAttributeToSelect('*')
            ->addFieldToFilter('price',array('lt'=>50)); // search
            //->->getFirstItem();
       

foreach($products as $product)
{
    echo '<pre>'; print_r($product); print_r($product->getName()); echo '</pre>';
}
*/


//====================================================================

// custom query

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


// first way
$query = $read->query("select * from mgt_customer_feedback");
while ($row = $query->fetch()) 
{ 
    echo '<pre>'; print_r($row); echo '</pre>';
}

// second way
//$results = $read->fetchAll("select * from customer_entity where email like '%@ikeepstudying.com'");
//foreach($results as $row)


// For Write
// fetch write database connection that is used in Mage_Core module
//$write = Mage::getSingleton('core/resource')->getConnection('core_write');

// now $write is an instance of Zend_Db_Adapter_Abstract
//$write->query("insert into tablename values ('aaa','bbb','ccc')");

// Magento Insert Query.
$write->insert(
        "A_TABLE_NANE",
        array("a_column_name" => value, "a_column_name" => value)
);

// Magento Update Query.
$write->update(
        "A_TABLE_NANE",
        array("a_column_name" => value, "a_column_name" => value),
        "entity_id=18"
);

// Magento Delete Query.
$write->delete(
    "A_TABLE_NANE",
    "entity_id=18"
);

 

Magento: How to select, insert, update, and delete data?

Here, I will be showing how to select, insert/add, update/edit and delete data in the Magento way. It’s about implementing the CRUD (Create Read Update Delete) concept. :)

 

Suppose, I have a database table named ‘news‘ with the following fields:-

id : int, auto increment, primary key
title : varchar
content : text
status : 0 or 1

Suppose, I have a module named ‘mynews‘. Here follows the code to select, insert, update, and delete data from the ‘news‘ table.

 

INSERT DATA

 

$data contains array of data to be inserted. The key of the array should be the database table’s field name and the value should be the value to be inserted.

$data = array('title'=>'hello there','content'=>'how are you? i am fine over here.','status'=>1);
$model = Mage::getModel('mynews/mynews')->setData($data);
try {
		$insertId = $model->save()->getId();
		echo "Data successfully inserted. Insert ID: ".$insertId;
	} catch (Exception $e){
	 echo $e->getMessage();   
}

 

 

SELECT DATA

 

$item->getData() prints array of data from ‘news’ table.
$item->getTitle() prints the only the title field.
Similarly, to print content, we need to write $item->getContent().

$model = Mage::getModel('mynews/mynews');
$collection = $model->getCollection();
foreach($collection as $item){
	print_r($item->getData());
	print_r($item->getTitle());
}

 

 

UPDATE DATA

 

$id is the database table row id to be updated.
$data contains array of data to be updated. The key of the array should be the database table’s field name and the value should be the value to be updated.

// $id = $this->getRequest()->getParam('id');
$id = 2;
$data = array('title'=>'hello test','content'=>'test how are you?','status'=>0);
$model = Mage::getModel('mynews/mynews')->load($id)->addData($data);
try {
		$model->setId($id)->save();
		echo "Data updated successfully.";
	   
	} catch (Exception $e){
		echo $e->getMessage(); 
}

 

 

DELETE DATA

 

$id is the database table row id to be deleted.

// $id = $this->getRequest()->getParam('id');
$id = 3;
$model = Mage::getModel('mynews/mynews');
try {
		$model->setId($id)->delete();
		echo "Data deleted successfully.";
	   
	} catch (Exception $e){
		echo $e->getMessage(); 
}

 

In this way you can perform select, insert, update and delete in your custom module and in any magento code.

Hope this helps. Thanks.

 

更多参考:

  1. Magento模块开发之数据库SQL操作方法说明
  2. Magento: addAttributeToFilter 和 addFieldToFilter 的区别 Difference between addAttributeToFilter and addFieldToFilter
  3. Magento模型集合addFieldToFilter常用过滤条件
  4. Magento: How to select, insert, update, and delete data?

 

原文/本文: Magento 数据库查询速记 select, insert, update, and delete data

 

 

 

 

 

 

分享到:
评论

相关推荐

    magento商城数据库

    在这个案例中,"magento-sample-data-1.6.1.0" 可能是一个包含 Magento 1.6.1.0 版本的示例数据和初始数据库结构的压缩包。用户可以通过导入这个 SQL 文件到他们的 MySQL 数据库中,来快速设置一个预填充的 Magento ...

    magento 数据库 以及时尚模板

    本资源“Magento数据库 以及时尚模板”显然是针对服装类商家,提供了数据库配置和时尚设计的解决方案。 首先,让我们详细探讨Magento数据库的构建和管理。Magento的核心功能之一是其复杂的商品目录系统,这依赖于一...

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

    在电子商务领域,Magento是一款广泛应用的开源电子商务平台,它允许商家管理他们的在线商店,包括产品、订单、客户等信息。在日常运营中,有时我们需要...这是一个涉及数据库查询优化、数据整合和文件导出的综合过程。

    Magento 数据库设计图.pdf

    标题:Magento 数据库设计图 描述:Magento 数据库设计图旨在提供一个清晰的视图,帮助用户理解 Magento 系统内部的数据结构与关联性。通过这张设计图,开发者和DBA能够快速掌握数据库中各表之间的关系,以及它们在...

    zencart 数据迁移到magento 数据库操作

    本文将详细介绍如何进行Zencart到Magento的数据迁移,尤其是数据库操作部分。 一、前期准备 在开始迁移前,确保你有Zencart和Magento的最新稳定版本,并备份两个系统的数据库和文件,以防数据丢失或错误。你需要...

    Magento数据库设计

    了解这些关系对于进行数据库查询、系统维护、插件开发以及性能优化等任务都是至关重要的。尤其是,当需要进行复杂的数据操作时,如数据迁移、模块扩展或数据整合等,了解数据库的表结构和关联关系更是必不可少。 ...

    magento导入数据库

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

    magento数据结构分析

    描述:“Magento数据字典”提供了对Magento系统中各种数据库表的深入理解,这对于理解和优化Magento的性能至关重要。 一、Magento数据结构解析 Magento是一款功能强大的电子商务平台,其复杂的数据结构是支撑其...

    magento商城data-feed

    Magento 商城 Data Feed 是一种数据交换机制,它允许商家将产品信息、库存状态等关键数据导出,以便在其他平台(如广告网络、价格比较网站或市场)上使用。Data Feed 对于电子商务运营至关重要,因为它提高了产品的...

    Magento数据库配置选项,以及mysql 读写分离

    1.数据库配置  [mysqld] key_buffer = 512M max_allowed_packet = 64M table_cache = 512 sort_buffer_size = 4M read_buffer_size = 4M read_rnd_buffer_size = 2M myisam_sort_buffer_size = 64M tmp_...

    magento快速复制网站_magento_magento快速复制站_

    rsync -avz --delete /path/to/source/magento/ /path/to/destination/ ``` 这里,`/path/to/source/magento/`是源站点的Magento根目录,`/path/to/destination/`是目标服务器的目录。 在新服务器上安装MySQL,并...

    Magento 自定义后台menu Insert dynamical menu in Magento’s Admin

    如果你需要动态生成菜单,可以利用Magento的事件观察者机制,在特定的事件(如`adminhtml_menu_prepare_data`)上添加或修改菜单结构。 通过这样的方式,你可以根据业务需求自由地扩展Magento的后台菜单,提供更...

    magento-lite-db-dump:转储 Magento 数据库的简化版本以用于开发的 Shell 脚本

    magento-lite-db-dump 转储 Magento 数据库的简化版本以用于开发的 Shell 脚本。 此脚本转储整个数据库结构,但将许多表留空。 这些通常是与日志、客户、订单、愿望清单等对应的表。 结果是一个更轻量级的文件可供...

    magento1.8 + sample data 1.6

    magento 1.8 sample data 1.6

    magento导出数据sql

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

    查询订单magento

    本教程将详细讲解如何在Magento的前端查询订单以及相关知识点。 首先,我们要理解"Magento前台查询订单"的概念。在Magento系统中,顾客账户部分允许已注册的用户查看他们的订单状态和详情。这一功能增强了用户体验...

    magento CE1.922数据库图

    magento CE版(社区办)1.922数据库业务逻辑,表关系逻辑图

    Magento-ProductGallery:从magento数据库中获取最新的10种产品

    从magento数据库中获取最新的10种产品 安装说明: - - - - - - - - - - - - - 解压缩ProductGalleryModule.zip 。 将应用程序和js文件夹复制并粘贴到项目的根目录中。 转到此URL以查看您商店的最新产品图库:...

    Magento插件(DeleteOrder)

    "DeleteOrder"插件是针对Magento系统的一个特定解决方案,解决了在默认情况下,Magento系统不支持直接删除订单的问题。这个插件允许用户在必要时永久删除订单,但需要注意的是,一旦订单被删除,数据将无法恢复,...

Global site tag (gtag.js) - Google Analytics