Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Codeigniter-防止在select语句上添加空格_Codeigniter_Codeigniter 3 - Fatal编程技术网

Codeigniter-防止在select语句上添加空格

Codeigniter-防止在select语句上添加空格,codeigniter,codeigniter-3,Codeigniter,Codeigniter 3,如何使用CodeIgniter 3防止select语句中的自动修复 我想要的查询:选择REPLACE(项“,”和“”)作为项(无空格) 我试过了:$this->db->select(“替换(项)”,“,”)为项”,FALSE) 结果:选择替换(项“,”和“”)作为项(CI在我的查询中添加了一个空格) 我读了,但没用 这是我真正的疑问: $this->db->select("a.unit_id"); $this->db->select("re

如何使用CodeIgniter 3防止select语句中的自动修复

我想要的查询:
选择REPLACE(项“,”和“”)作为项
(无空格)

我试过了
$this->db->select(“替换(项)”,“,”)为项”,FALSE)

结果
选择替换(项“,”和“”)作为项
(CI在我的查询中添加了一个空格)

我读了,但没用

这是我真正的疑问:

$this->db->select("a.unit_id"); 
$this->db->select("replace(c.topik, ',', '') AS topik",  FALSE); //this my problem (added space which shouldnt)
$this->db->select("COUNT(*) AS jumlah");
$this->db->from('opub_kliping a');
$this->db->join('opub_media b','a.media_id = b.organisasi_id');
$this->db->join('opub_tag c','a.id = c.kliping_id');
if(!empty($data['keyword']))$this->db->where("(a.judul LIKE '%".$data['keyword']."%' OR a.text LIKE '%".$data['keyword']."')");
if(!empty($data['tgl1']))$this->db->where("a.tanggal >=",$data['tgl1']);
if(!empty($data['tgl2']))$this->db->where("a.tanggal <=",$data['tgl2']);
if(!empty($data['unit']))$this->db->where("a.unit_id ",$data['unit']);
if(!empty($data['media']))$this->db->where("a.media_id ",$data['media']);
if(!empty($data['jenis']))$this->db->where("a.jenis_id ",$data['jenis']);
if(!empty($data['tone']))$this->db->where("a.karakter ",$data['tone']);
if(!empty($data['topik']))
{
    $qTopik = array();
    $expTopik = explode(',', $data['topik']);
    foreach($expTopik as $t)
    {
        if(!empty($t))
        {
            $qTopik[] = "c.topik LIKE '%$t%'";
        }
    }
    if(!empty($qTopik))
    {
        $qTopiks = implode(",", $qTopik);
        $this->db->where($qTopiks);
    }
}
$this->db->where('a.unit_id !=', 0);
$this->db->where('c.topik !=', NULL); 
$this->db->where('c.topik !=', '');
$this->db->group_by("a.unit_id");
$this->db->group_by("replace(c.topik, ',', '')", FALSE); //this produce correct query (without adding space)
$this->db->order_by('a.unit_id', 'ASC');
$this->db->order_by('jumlah', 'DESC');

$q= $this->db->get(); 
$this->db->select(“a.unit_id”);
$this->db->select(“将(c.topik,”,“,”)替换为topik”,FALSE)//这是我的问题(添加了不应该添加的空间)
$this->db->select(“COUNT(*)AS jumlah”);
$this->db->from('opub_kliping a');
$this->db->join('opub_media b','a.media_id=b.organisi_id');
$this->db->join('opub_tag c','a.id=c.kliping_id');
如果(!empty($data['keyword'])$this->db->where(“($judul类似“%”,$data['keyword']”.“%”或.text类似“%”,$data['keyword']”.“)”);
如果(!empty($data['tgl1'])$this->db->where(“a.tanggal>=”,$data['tgl1']);

如果(!empty($data['tgl2'])$this->db->where(“a.tanggal更改查询的4行

$this->db->select("a.unit_id,replace(c.topik, ',', '') AS topik,COUNT(*) AS jumlah")->from('opub_kliping a');
$this->db->join('opub_media b','a.media_id = b.organisasi_id');

我做了一些实验后发现了这个

$this->db->select(数组('REPLACE(c.topik',“,”,“,”)AS topik),false);

也许看起来有点像黑客,但对我来说是有用的
希望能帮助其他人

你可以使用$this->db->query(“选择替换(项,,,,”)作为项…你的完整查询”);是的,我绝对可以使用query()。但我很难使用查询生成器。因为我在那个真正的查询中有很多子句。在上面,我只是将其删减以使其更易于理解。在你的问题中添加完整的查询完成。我添加完整的查询以防止迟交答复。这就产生了这个
选择“a”。“unit\u id”从“opub\u kliping”中选择“a”加入“opub\u media”“b”中的“a”。“media\u id”=“b”Organizasis_id“加入”a上的opub_标签“c”。“id”=“c”。“kliping_id”其中“a”。“tanggal”>=“2017-01-09”和“a”。“tanggal”