Php 它是一个活动记录类,where(),like()?

Php 它是一个活动记录类,where(),like()?,php,codeigniter,activerecord,php-5.3,Php,Codeigniter,Activerecord,Php 5.3,我有一个关于活动记录类用法的问题,下面是我的代码片段 $this->db->select('year, distance, gender, rank, name, chiptime, racenumber'); $this->db->order_by("year", "desc"); $this->db->order_by("distance, gender, rank", "asc"); $year = 2010; $this->db->

我有一个关于活动记录类用法的问题,下面是我的代码片段

$this->db->select('year, distance, gender, rank, name, chiptime, racenumber');
$this->db->order_by("year", "desc");
$this->db->order_by("distance, gender, rank", "asc");
$year = 2010;    
$this->db->where('year', $year);   // where() doesn't work!
$this->db->like('rank', $keyword); // Assume I didn't add like() with $keywords, where() works well.
$this->db->or_like('name', $keyword); 
当我在活动的Recrod类中的$this->db->like()之后绑定$this->db->where()时,$this->db->where()将不再工作。它将显示包括$keyword在内的所有年份记录

这是Active Recrod类中的一个限制,还是我没有找到绑定where()和like()的正确方法

感谢您的回复

我想这是“和”和“或”部分。当前,您的位置如下所示:

其中年份=2010,排名=1或姓名='Peter'

因为你有一个OR,它会发现所有名字都是“Peter”,排名是1,年份是2010

因此,您应该更好地定义您的位置,并在需要时使用圆括号。

您尝试过使用吗?;比如:


您是否尝试过codeigniter活动记录是否允许链接(我对此表示怀疑,但请尝试),例如:
$this->db->where(…)->like(…)?我还没试过。我想试试,以后再更新。谢谢。@hakre,我试过
$year=2010;$this->db->where('year',$year)->like('name',$keyword)->或_like('chiptime',$keyword)->或_like('racernumber',$keyword);//链接样式
。它起作用了!你的评论正是正确的答案。谢谢“很高兴听到它对你有用,我把它作为一个答案加上去了。你自己键入查询,然后使用CI提供的占位符就可以了。更具可读性。这是SQL有原因的
$this->db->where(...)->like(...);