Magento 2: Run Custom SQL Query




In Magento 2, we use models to access or modify the database data. But in some cases, we may require to communicate with the database using custom SQL queries. In order to execute queries in database in Magento 2, we need to instantiate
Magento\Framework\App\ResourceConnection class. We can inject this resource class in our class constructor and run our custom queries by using that object within the class.













$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$resource = $objectManager->get('Magento\Framework\App\ResourceConnection');
$connection = $resource->getConnection();
$tableName = $resource->getTableName('mytable');
$name = 'Ahmad Dev';
$email = 'ahmad.dev@demo.com';
$website_url = 'http://www.demo.com';


Insert Query:
$sql = "INSERT INTO " . $tableName . " (id, name, email, website_url) VALUES ('', '$name', '$email', '$website_url')";
$connection->query($sql);

Select Data Query:

$sql = "SELECT * FROM " . $tableName;
$result = $connection->fetchAll($sql); 
echo '<pre>'; print_r($result); echo '</pre>';  

Update Query:
$id = 1; // table row id to update
$sql = "UPDATE " . $tableName . " SET name = 'Your Name', email = 'youremail@demo.com' WHERE id = " . $id;
$connection->query($sql);

Delete Query:
$id = 1; // table row id to delete
$sql = "DELETE FROM " . $tableName . " WHERE id = " . $id
$connection->query($sql);


You can see detail about it in class Magento\Framework\DB\Select present in vendor/magento/framework/DB/Select.php.


No comments:

Post a Comment

Buy/Sell Source Code of Website,Apps,Softwares

Install sample data in magento 2