[英]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.