Codeigniter select_sum генерирует неправильный запрос - PullRequest
0 голосов
/ 27 мая 2019

Я работал над проектом Codeigniter 2, там у меня есть активная запись вроде:

$query = $this->db->select_sum('Cardit * GPA', 'sum')
                  ->get('marks_info');

Он генерирует запрос как:

SELECT SUM(`Cardit` * `GPA`) AS `sum` FROM `marks_info`

Недавно я перенес свой проект в Codeigniter 3, но эта же активная запись вызвала немного другой запрос, например:

SELECT SUM(`Cardit *` `GPA`) AS `sum` FROM `marks_info`

, что неверно, оно включает * with Cardit ( 'Cardit *' ) в разделе SUM.

Разница:

enter image description here

Может кто-нибудь сказать мне, как можноЯ решаю эту проблему в CodeIgniter 3?

Ответы [ 2 ]

0 голосов
/ 27 мая 2019

Чтобы избежать обратных кавычек в запросе. Вы можете назначить false на protect_identifiers как:

$this->db->_protect_identifiers=false;

и соответственно выполните ваш запрос.

0 голосов
/ 27 мая 2019

Попробуйте, это даст вам ожидаемый результат

$query = $this->db->select('sum(Cardit * GPA) sum')->get('marks_info');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...