codeigniter在查询中添加错误的额外引用

时间:2013-05-17 04:31:37

标签: codeigniter

请帮我解决这个问题..

我将在mysql中进行查询,但代码点火器以错误的格式读取我的查询:

我的查询:

$this->db->select('substring(sbj_prog,1,5) as prog , count(sbj_prog) as bil');
$this->db->from('sbj_app');
$this->db->group_by('prog');
$this->db->limit('10');

这是codeigniter读取的方式

 SELECT substring(sbj_prog, `1`, `5)` as prog, count(sbj_prog) as bil FROM (`sbj_app`) GROUP BY `prog` LIMIT 10

问题是为什么额外的报价被添加到5)

非常感谢。

3 个答案:

答案 0 :(得分:0)

你可以像这样尝试额外的参数错误

$this->db->select("substring(sbj_prog,1,5) as prog , count(sbj_prog) as bil", FALSE);

它会起作用

答案 1 :(得分:0)

尝试在获得

之类的结果后添加子字符串
$this->db->select('sbj_prog as prog , count(sbj_prog) as bil');
$this->db->from('sbj_app');
$this->db->group_by('prog');
$this->db->limit('10');

然后在你得到结果之后尝试使用子串作为

$prog = substring($row['prog'],1,5);

你可以使用

$this->db->select('substring(sbj_prog,1,5) as prog,count(sbj_prog) as bil',FALSE);

请参阅此Select

答案 2 :(得分:0)

来自CodeIgniter's activerecord;

的手册
  

$ this-> db-> select()接受可选的第二个参数。 如果将其设置为FALSE,CodeIgniter将不会尝试使用反引号保护您的字段或表名。如果您需要复合选择语句,这非常有用。

换句话说,如果您只有常量的情况,可以使用;

$this->db->select('substring(sbj_prog,1,5) as prog , count(sbj_prog) as bil',
                  FALSE);