【问题标题】:Codeigniter query builder using implode function in where_in在 where_in 中使用 implode 函数的 Codeigniter 查询生成器
【发布时间】:2017-03-22 02:36:03
【问题描述】:

这是我使用 implode 函数的普通 sql 查询:

SELECT * from search_result WHERE skills IN ('".implode("','",$s_id)."');  

现在我想将其转换为 codeigniter 形式。我尝试了以下代码,但失败了

$this->db->from('search_result');
$this->db->where_in('skills','".implode("','",$s_id)."');
$query = $this->db->get();  

这是我的$s_id 数组:

Array ( [0] => 2D Design [1] => 3D Design [2] => 3D Modelling ) 

所以请任何人帮助我做到这一点。在此先感谢:)

【问题讨论】:

  • $s_id 作为数组传递
  • @AbdullaNilam 你能举个例子吗..
  • 添加 $s_id
  • @AbdullaNilam 请检查我的更新
  • 查看下面的答案

标签: mysql sql codeigniter implode where-in


【解决方案1】:

你可以这样写:

$this->db->from('search_result');
$this->db->where_in('skills', $s_id);
$query = $this->db->get();

Official doc

$names = array('Frank', 'Todd', 'James');

$this->db->where_in('username', $names);

// 产生:WHERE username IN ('Frank', 'Todd', 'James')

【讨论】:

    【解决方案2】:

    官方文档说的

    $names = array('Frank', 'Todd', 'James'); # Data Array 
    $this->db->where_in('username', $names); # passing array
    

    像下面这样试试

    方法01推荐

    $this->db->from('search_result');
    $this->db->where_in('skills',$s_id);
    $query = $this->db->get();
    

    方法02

    $this->db->from('search_result');
    $this->db->where_in('skills',implode("','",$s_id));
    $query = $this->db->get();
    

    这行有什么问题

    $this->db->where_in('skills','".implode("','",$s_id)."');
    

    不要用 '" 引号包裹函数。然后它将作为字符串值保存到数据库。


    链接

    1. where_in clause in codeigniter.com

    【讨论】:

      猜你喜欢
      • 2020-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-30
      • 2016-07-05
      • 1970-01-01
      相关资源
      最近更新 更多