【问题标题】:Codeigniter - use two like and where togetherCodeigniter - 一起使用两个like和where
【发布时间】:2015-11-28 11:28:33
【问题描述】:

我在使用两个 like 语句和 where 在一起时遇到问题:

    $this->db->select('something');
    $this->db->where('WHERE',$var);
    $this->db->where_in('WHEREIN', $var);
    $this->db->like('LIKE1',$query);
    $this->db->or_like('LIKE2',$query);
    $query = $this->db->get('table');

我的查询必须选择LIKE1LIKE2,其中WHEREWHEREIN 为真。

如果我使用or_likewhere 语句也得到or

如果我只使用like,它就会变成like AND like 声明

有什么办法吗??

【问题讨论】:

  • 您要创建的语句是什么? Codeigniter 实际创建的语句是什么?你可以通过echoing $this->db->last_query();找到这个
  • SELECT * FROM pic WHERE doc = '123456' AND place IN('1,2,3') AND name LIKE '%query%' ESCAPE ' !或code LIKE '%query%' ESCAPE '!'通过id DESC 订购
  • 我想要这样的东西:doc AND where place AND (like code OR like name)
  • SELECT * FROM pic WHERE doc = '123456' AND place IN('1,2,3') AND name (LIKE '%query%' ESCAPE '!' OR code LIKE '%query% 'ESCAPE '!' ) ORDER BY id DESC

标签: php sql codeigniter


【解决方案1】:

我找到了这个解决方案:

使用group_start()group_end(),所以我的代码转到

$this->db->select('something');
$this->db->where('WHERE',$var);
$this->db->where_in('WHEREIN', $var);
$this->db->group_start();
$this->db->like('LIKE1',$query);
$this->db->or_like('LIKE2',$query);
$this->db->group_end();
$query = $this->db->get('table');

【讨论】:

    【解决方案2】:

    如果你有一个复杂的 where 子句,你可以这样写:

    $this->db->where("doc = '123456' AND place IN('1,2,3') AND name (LIKE '%query%' ESCAPE '!' OR code LIKE '%query%' ESCAPE '!' )", NULL);
    

    【讨论】:

      【解决方案3】:

      当你运行这种查询时,如果你创建一个这样的模型会更好:

      function example(){
      
          $query = "( SQL QUERY )";
          $search = $this->db->query($query);
          return $search->result_array(); 
      }
      

      【讨论】:

      • 出于安全原因,我不想使用$this->db->query()函数。
      • 如果你使用 $data = $this->security->xss_clean($data); 你会怎么想当你将数据发送到模型以防止查询上的 xss 时?
      猜你喜欢
      • 2015-10-18
      • 2014-05-26
      • 1970-01-01
      • 2013-06-27
      • 1970-01-01
      • 1970-01-01
      • 2020-01-29
      • 1970-01-01
      • 2011-05-12
      相关资源
      最近更新 更多