Как в Yii2 использовать голый sql

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
mika_di
Сообщения: 218
Зарегистрирован: 2015.09.24, 11:57

Как в Yii2 использовать голый sql

Сообщение mika_di »

пытаюсь через

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

  $connection = Yii::$app->getDb();
        $command = $connection->createCommand($sql , [':date_start' => $start, ':date_end' => $end,':christmas' => $this->christmas]);
        return $command->queryOne();
выполнить селект в вложенными запросами и ифами
на выходе получаю ошибку
SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens
как от этого избавиться?
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Как в Yii2 использовать голый sql

Сообщение andku83 »

а то что в $sql не имеет значения?
Аватара пользователя
mika_di
Сообщения: 218
Зарегистрирован: 2015.09.24, 11:57

Re: Как в Yii2 использовать голый sql

Сообщение mika_di »

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

select sum(sum_new_sim) as prihod, sum(sum_iss_sim) as rashod, sum(sum_pers_iss_sim) as person, sum(sum_list_iss_sim) as lists, region as reg,
(if((select ost_new_sim from stat_totals where region = 'Белгород' and native_priziv = 'Весна 2017' and operator = 'мтс' and `date` BETWEEN '2017-08-28' AND '2017-09-30' order by `date` desc limit 1 )is null,0, (select ost_new_sim from stat_totals where region = 'Белгород' and native_priziv = 'Весна 2017' and operator = 'мтс' and `date` BETWEEN '2017-08-28' AND '2017-09-30' order by `date` desc limit 1 ))) +
(if((select ost_new_sim from stat_totals where region = 'Белгород' and native_priziv = 'Весна 2017' and operator = 'билайн' and `date` BETWEEN '2017-08-28' AND '2017-09-30' order by `date` desc limit 1 )is null,0, (select ost_new_sim from stat_totals where region = 'Белгород' and native_priziv = 'Весна 2017' and operator = 'билайн' and `date` BETWEEN '2017-08-28' AND '2017-09-30' order by `date` desc limit 1 ))) +
(if((select ost_new_sim from stat_totals where region = 'Белгород' and native_priziv = 'Весна 2017' and operator = 'мегафон' and `date` BETWEEN '2017-08-28' AND '2017-09-30' order by `date` desc limit 1) is null,0, (select ost_new_sim from stat_totals where region = 'Белгород' and native_priziv = 'Весна 2017' and operator = 'мегафон' and `date` BETWEEN '2017-08-28' AND '2017-09-30' order by `date` desc limit 1)))+
(if((select ost_new_sim from stat_totals where region = 'Белгород' and native_priziv = 'Весна 2017' and operator = 'ТЕЛЕ2' and `date` BETWEEN '2017-08-28' AND '2017-09-30' order by `date` desc limit 1 ) is null,0, (select ost_new_sim from stat_totals where region = 'Белгород' and native_priziv = 'Весна 2017' and operator = 'ТЕЛЕ2' and `date` BETWEEN '2017-08-28' AND '2017-09-30' order by `date` desc limit 1 ))) 
as ost from stat_totals where region = 'Белгород' and `date` BETWEEN '2017-04-01' AND '2017-09-30' order by `date` desc limit 1;
Вот как то так
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Как в Yii2 использовать голый sql

Сообщение andku83 »

в этой строке нет параметров которые вы хотите подставить
search
Ответить