Codeigniter select_sum生成错误的查询

时间:2019-05-27 03:31:53

标签: php sql codeigniter

我参与了Codeigniter 2项目,那里有一个active record,例如:

$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`

那是错误的,它在SUM部分中包含*和 Cardit 'Cardit *')。

差异:

enter image description here

有人可以告诉我,如何在CodeIgniter 3中解决此问题?

2 个答案:

答案 0 :(得分:0)

尝试一下,它将为您带来预期的输出

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

答案 1 :(得分:0)

避免查询中出现反引号。您可以为protect_identifiers分配 false

$this->db->_protect_identifiers=false;

并相应地运行查询。