Sql query in magento – Resource Connection

Posted on

If you need run sql query without repository or collection use ResourceConnection in your module.

Create model in your module:

<?php
declare(strict_types=1);
namespace Vendor\Module\Model;

use Magento\Framework\App\ResourceConnection;

class YourClass
{
    private ResourceConnection $resourceConnection;

    public function __construct(
        ResourceConnection $resourceConnection
    ) {
        $this->resourceConnection = $resourceConnection;
    }

    private function getConnection(): \Magento\Framework\DB\Adapter\AdapterInterface
    {
        return $this->resourceConnection->getConnection();
    }

    protected function YourMethod()
    {
        $select = "SELECT * FROM `magento`.`catalog_product_entity` WHERE `entity_id` = '1000000'";
        $result = $this->getConnection()->fetchAll($select);

        foreach ($result as $item) {
                echo $item['sku'];
        }
    }
}

Tested in Magento 2.4.3