Codeigniter查询生成器禁用引号

时间:2017-11-21 08:42:33

标签: codeigniter builder

我在CodeIgniter 3上使用Query builder与Oracle DB。 我无法创建普通查询。我的疑问是:

$CI->db->query('c.*',false);
$CI->db->from('COUNTRIES c',false);
$CI->db->join('FILIALS as f','f.country_id=c.country_id',false);
$CI->db->where('f.FILIAL_ID',$id,false);
$query=$CI->db->get();
return $query->result('Country')[0];

这给了我一个查询

SELECT c.* FROM "COUNTRIES" "c" JOIN "FILIALS" as "f" ON "f"."country_id"="c"."country_id" WHERE f.FILIAL_ID = 7

但是这个查询不起作用,抱怨查询不正确。在Sqlplus中同样的问题。 但是如果我在sqlplus中手动运行,删除" as",并在表字段和表名中引用,它就可以正常工作。 这是我的工作查询:

SELECT c.* FROM "COUNTRIES" c JOIN "FILIALS"  f ON f.country_id=c.country_id WHERE f.FILIAL_ID = 7

如何告知查询生成器,删除" as",以及查询中的quotata标记。

2 个答案:

答案 0 :(得分:1)

尝试此查询:

$this->db->select('c.*',false);
$this->db->from('COUNTRIES c',false);
$this->db->join('FILIALS as f','f.country_id=c.country_id',false);
$this->db->where('f.FILIAL_ID',$id,false);
$query = $this->db->get();
return $query->result();

答案 1 :(得分:0)

从联接中删除AS

我完成了它。

$this->db->select('c.*',false);
$this->db->from('COUNTRIES c',false);
$this->db->join('FILIALS f','f.country_id=c.country_id',false);
$this->db->where('f.FILIAL_ID',$id,false);
$query = $this->db->get();
return $query->result();