解决CI在生成SQL语句时前缀不统一的问题.

解决CI在生成SQL语句时前缀不统一的问题.

其实这个问题一直都存在,包括最新的1.6.3,具体的诊状为:

比如


$this->db->select(‘*’);
$this->db->from(‘archives’);
$this->db->where(‘typeid’, $tid);
$this->db->where(‘iscommend’, 10);
$this->db->where(‘litpic <> ‘, ”);

有这么一段代码,如果你在配置文件里设定有表前缀的话,这时候你可不要指望它能正确执行,在 

$this->db->where(‘litpic <> ‘, ”); 

这一句的时候它是不会增加正确的表前缀的,解决的办法嘛也很简单,就是用别名.

像这样

$this->db->select(‘arch.*’);
$this->db->from(‘archives AS arch’);
$this->db->where(‘arch.typeid’, $tid);
$this->db->where(‘arch.iscommend’, 10);
$this->db->where(‘arch.litpic <> ‘, ”);

这样子就不会有问题了,不信大家可以试试看.



发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 21 = 30