请帮我解决这个问题..
我将在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)
非常感谢。
答案 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)
$ this-> db-> select()接受可选的第二个参数。 如果将其设置为FALSE,CodeIgniter将不会尝试使用反引号保护您的字段或表名。如果您需要复合选择语句,这非常有用。
换句话说,如果您只有常量的情况,可以使用;
$this->db->select('substring(sbj_prog,1,5) as prog , count(sbj_prog) as bil',
FALSE);