Вызов хранимой процедуры из Query

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
dstk
Сообщения: 7
Зарегистрирован: 2018.04.19, 17:17

Вызов хранимой процедуры из Query

Сообщение dstk »

Добрый день.

Не нашел как из построителя запросов вызвать хранимку MySQL. Нужно именно new Query(), не DAO

Чистый SQL выглядит как

Код: Выделить всё

CALL bd.my_proc(param)
Процедура возвращает то же самое, что и

Код: Выделить всё

$query = (new Query())->select('*')
            ->from('bd.my_table')
            ->where('my_param = ' . $param);
Но нужна хранимка...
chesar
Сообщения: 514
Зарегистрирован: 2013.04.10, 17:49

Re: Вызов хранимой процедуры из Query

Сообщение chesar »

dstk писал(а): 2018.06.09, 08:27 Нужно именно new Query(), не DAO
Почему?
dstk
Сообщения: 7
Зарегистрирован: 2018.04.19, 17:17

Re: Вызов хранимой процедуры из Query

Сообщение dstk »

Для плюшек ActiveDataProvider
Аватара пользователя
Alexum
Сообщения: 683
Зарегистрирован: 2016.09.26, 10:00

Re: Вызов хранимой процедуры из Query

Сообщение Alexum »

Если нет острой необходимости хранимыми процедурами ИМХО лучше не пользоваться, имел дело с проектом в котором изначально чуть ли не вся логика строилась на работе десяток! хранимых процедур, которые взаимодействовали с сотней таблиц. Искать причины багов в таком проекте было очень "весело".
dstk
Сообщения: 7
Зарегистрирован: 2018.04.19, 17:17

Re: Вызов хранимой процедуры из Query

Сообщение dstk »

Если нет острой необходимости хранимыми процедурами ИМХО лучше не пользоваться
Спасибо за совет! Вы уже не первый
К сожалению, выбор хранимок и некой логики в БД обусловлен, как минимум, двумя факторами:
1. Есть клиент для windows на delphi (Собственно, с него все началось и основной функционал там)
2. Безопасность - сайт берет все данные из удаленной базы, не localhost. Поэтому хранимки и вьюшки
chesar
Сообщения: 514
Зарегистрирован: 2013.04.10, 17:49

Re: Вызов хранимой процедуры из Query

Сообщение chesar »

Query represents a SELECT SQL statement in a way that is independent of DBMS.
Для выполнения вашего запроса, нужен \yii\db\Command

Код: Выделить всё

Yii::$app->db->createCommand('CALL bd.my_proc(param)')->execute()
dstk
Сообщения: 7
Зарегистрирован: 2018.04.19, 17:17

Re: Вызов хранимой процедуры из Query

Сообщение dstk »

Query represents a SELECT SQL statement in a way that is independent of DBMS
Опасения подтверждены, спасибо
Ответить