【问题标题】:How to search for 2 values in the same field with codeigniter?如何使用codeigniter在同一字段中搜索2个值?
【发布时间】:2019-03-03 22:09:39
【问题描述】:

我有一个包含关键字 ID ["1","2","3","4","5","6"] 的数据库字段,我想在同一个字段中搜索其中几个 ID .

这是我想要实现的想法:

$tags[] = "\"1\"";

$tags[] = "\"2\"";

$query = $this->db->like(array('ids_keywords' => $tags[0], 'ids_keywords' => $tags[1]));

这里的问题是codeigniter只执行最后一个请求,而不是两者都执行,因为搜索字段相同。

这样做的最佳解决方案是什么?

【问题讨论】:

  • 感谢您的快速回答,但这似乎使用 OR 条件搜索并返回包含“1”或“2”的所有字段。我需要在同一字段中搜索“1”和“2”。

标签: php mysql codeigniter codeigniter-3


【解决方案1】:

试试下面的

$arrTags = [1,2];
$this->db->group_start()
foreach($arrTags AS $strTag)
{
    $this->db->like(ids_keywords, '"'.$strTag.'"');

}
$this->db->group_end();

【讨论】:

  • 谢谢sintakonte !!
【解决方案2】:

您可以编写自己的子句:

$where = "ids_keywords='1' AND ids_keywords='2' OR ids_keywords='3'";

$this->db->where($where);

为了安全查询使用问号(?)

$sql = "SELECT * FROM some_table WHERE ids_keywords = ? AND ids_keywords = ? AND ids_keywords = ?";
   $this->db->query($sql, array(1, 2, 3));

在上面的例子中,问号(?) 将被替换为query() 函数的第二个参数中的数组。以这种方式构建查询的主要优点是值会自动转义,从而产生安全的查询。 CodeIgniter 引擎会自动为您完成。

【讨论】:

  • 谢谢,但在这种情况下,我没有保护 SQL 注入查询
猜你喜欢
  • 2017-06-26
  • 2013-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多