Main > Magento > Magento 2: выполнения сырого SQL

Magento 2: выполнения сырого SQL

01.09.2019 0 comments » Views: 211

Magento 2

Иногда, появляется необходимость выполнить некоторые SQL команды напрямую, без использования Magento 2 моделей и коллекций. В этой небольшой статье я расскажу как выполнять обычные CRUD операции..

Итак, первое что нам понадобится, это создать файл test-direct-sql.php в корне установленной Magento 2.

Теперь добавляем туда подключение файла bootstrap и создаем объект objectManager-а, для загрузки классов

Далее получаем объект \Magento\Framework\App\ResourceConnection и через него объект \Magento\Framework\DB\Adapter\AdapterInterface (в 99% случаев это объект \Magento\Framework\DB\Adapter\Pdo\Mysql)

следующим шагом, получаем имя таблицы (core_config_data) с префиксом, если он используется. Именно эту таблицу мы и будем использовать в наших SQL запросах

Теперь, пререходим к выборке данных, делается это так

на выходе получим обычный ассоциативный массив

Теперь, рассмотрим операцию вставки и обновления данных

Тут мы делаем INSERT и в случае ошибки "1062 Duplicate entry" делаем обновление записи.

Осталось рассмотреть удаление, делается это так же просто

Как видите использовать SQL напрямую достаточно просто. Полный код из файла ниже

--[добавлено]--

Иногда требуется получить существующий connection в каком-нибудь хелпере и в целях отладки не прописывать его в конструктор, сделать это можно вот так

 

Author: | Rating: 4/5 | Tags: ,

Leave a Reply

Your email address will not be published. Required fields are marked *

Allowed HTML-tags: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>