簡體   English   中英

如何使用codeigniter在同一字段中搜索2個值?

[英]How to search for 2 values in the same field with codeigniter?

我有一個數據庫字段,其中包含關鍵字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]));

這里的問題是,由於搜索字段相同,因此代碼初始化器僅執行最后一個請求,而不執行兩個請求。

這樣做的最佳解決方案是什么?

嘗試以下

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

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

您可以編寫自己的子句:

$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引擎自動為您完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM