11th June 2020
Magento 2 Direct SQL Queries in Zend Format
Sometimes due to some project requirements, we need to directly communicate with Magento2 Database and we have to write SQL queries for that. This post will help you to write direct SQL Queries in Zend Format.
public function __construct(
\Magento\Framework\App\ResourceConnection $resourceConnection
) {
$this->resourceConnection = $resourceConnection;
}
$connection = $this->resourceConnection->getConnection();
$tableName = $this->resourceConnection->getTableName('customer_history');
$tableName2 = $this->resourceConnection->getTableName('order_history');
OR
Using Object Manager Directly:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$resource = $objectManager->get('Magento\Framework\App\ResourceConnection');
$connection = $resource->getConnection();
$tableName =$resource->getTableName('customer_history');
$tableName2 =$resource->getTableName('order_history');
Select Queries:
Syntax:
$select = $connection->select()
->from(
['p' => $tableName])
->where('p.column_name=?', $value)
->where('p.column_name2 >=?', $value)
->order('p.column_name3 DESC')
->limit($pagesize, $offset);
$data = $connection->fetchAll($select);
Example:
$select = $connection->select()
->from(
['p' => $tableName])
->where('p.customer_id=?', 5)
->where('p.status =?', 1)
->order('p.createdat DESC')
->limit(10, 0);
To get only selected columns from Table:
$select = $connection->select()
->from( ['p' => $tableName],['p.order_id', 'p.status'])
->where('p.customer_id=?', 5)
->where('p.status =?', 1)
->order('p.createdat DESC')
->limit(10, 0);
$data = $connection->fetchAll($select);
Perform Select Query with JOIN
$select = $connection->select()
->from(
['p' => $tableName], ['p.customer_id', 'p.status', 'p.order_id','o.ordertotal']
)
->join(
['o' => $tableName2], 'main_table.order_id = order.id', ['']
)
->where('p.order_id = (?)', '455');
$data = $connection->fetchAll($query);
Insert Query:
Syntax:
$data = ["column_name"=>$value,"column_name2"=>$value2,'column_name3'=>$value3]; $connection->insert($tableName, $data);
Example :
$data = ["customer_id"=>'22',"status"=>1,'order_id'=>'455']; $lastInsertedID= $connection->insert($tableName, $data);
Update Query:
Syntax:
$data = ["column_name3"=>$value3]; $where = ['column_name = ?' => $value, 'column_name2 = ?' => $value2]; $updatedRows=$connection->update($tableName, $data, $where);
Example:
$data = ["status"=>1]; $where = ['customer_id = ?' => '22', 'order_id = ?' => '455']; $updatedRows=$connection->update($tableName, $data, $where);
Delete Queries
Syntax:
$connection->delete( $tableName, ['column_name = ?' => $value, 'column_name2 = ?' => '0'] );
Example :
$connection->delete( $tableName, ['customer_id = ?' => '22', 'status = ?' => '0'] );
oralied
6th October 2025
The design of Pips NYT is beautiful — clean, minimal, and satisfying to interact with. The small animations and sound effects make it feel premium, just like Wordle and Connections from NYT Games.
jack
30th July 2025
a extremely superb webpage. a realy educational in addition to a an extremely superior position. i’m a sucker for the. thongs for halloween
mixapo4728
20th July 2025
heavy window curtains would be much needed this december to conserve more heat**부달
mixapo4728
20th July 2025
i do paid online surverys and also monetize my blogs, both are good sources of passive income’부달
Nimra
22nd June 2025
Nice post! This is a very nice blog that I will definitively come back to more times this year! Thanks for informative post. skor live
Nimra
22nd June 2025
Nice post! This is a very nice blog that I will definitively come back to more times this year! Thanks for informative post. casino online
Nimra
22nd June 2025
Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I'll be subscribing to your feed and I hope you post again soon. Big thanks for the useful info. Web3 Dapp
Nimra
17th June 2025
Nice post! This is a very nice blog that I will definitively come back to more times this year! Thanks for informative post. قالب تزریق پلاستیک
Nimra
17th June 2025
Thank you because you have been willing to share information with us. we will always appreciate all you have done here because I know you are very concerned with our. togel macau
Nimra
17th June 2025
Really I enjoy your site with effective and useful information. It is included very nice post with a lot of our resources.thanks for share. i enjoy this post. olxtoto alternatif
Nimra
17th June 2025
Nice post! This is a very nice blog that I will definitively come back to more times this year! Thanks for informative post. iosbet
Nimra
17th June 2025
Nice post! This is a very nice blog that I will definitively come back to more times this year! Thanks for informative post. iosbet
Nimra
17th June 2025
Nice post! This is a very nice blog that I will definitively come back to more times this year! Thanks for informative post. iosbet
Nimra
17th June 2025
Nice post! This is a very nice blog that I will definitively come back to more times this year! Thanks for informative post. iosbet
Nimra
17th June 2025
Nice post! This is a very nice blog that I will definitively come back to more times this year! Thanks for informative post. iosbet
Post Your Message