Friday 11 May 2012

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


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.

2 comments:

  1. These articles and blogs are truly enough for me for a day.
    Relationships by KK Select

    ReplyDelete
  2. $id = 10;
    $data= array('order_id'=>'201302081034');

    $model = Mage::getModel('stitching/stitching')->load($id)->addData($data);
    try {
    $model->setId($id)->save();
    echo "Data updated successfully.";

    } catch (Exception $e){
    echo $e->getMessage();
    }

    above code working fine but in database order_id showing as 2147483647
    while order_id have varchar(50)

    so how this going wrong,,,,,,

    ReplyDelete