我正在尝试使用 CodeIgniter 的活动记录类查询我的数据库。我有许多博客文章存储在一个表中。该查询用于搜索功能,该功能将提取所有分配有特定类别的帖子。因此,表格的“类别”列将列出该帖子的所有类别,不按特定顺序排列,用逗号分隔,例如:政治、历史、社会学。等等
如果用户选择政治和历史,则应返回具有这两个类别的所有帖子的标题。
因此,查询的类别列表将是数组 $cats。我以为这行得通-
foreach ($cats as $cat){
$this->db->like('categories',$cat);
}
通过产生这个:
$this->db->like ('categories','Politics');
$this->db->like ('categories','History');
(这将产生 - 'WHERE categories LIKE '%Politics%' AND categories LIKE '%History%')
但它不起作用,它似乎只产生第一个语句。我猜的问题是每个链接查询的列名都是相同的。CI 用户指南中似乎没有任何关于此的内容(http://codeigniter.com/user_guide/database/active_record.html),因为他们似乎假设每个链接语句将用于不同的列名.
当然,不可能在一个语句中使用关联数组,因为它必须包含重复的键——在这种情况下,每个键都必须是“类别”......