Codeigniter的`where`和`or_where`

我正在尝试在模型中指定查询

$this->db

->select('*')

->from('library')

->where('library.rating >=', $form['slider'])

->where('library.votes >=', '1000')

->where('library.language !=', 'German')

->where('library.available_until >=', date("Y-m-d H:i:s"))

->or_where('library.available_until =', "00-00-00 00:00:00")

->where('library.release_year >=', $year_start)

->where('library.release_year <=', $year_end)

->join('rating_repo', 'library.id = rating_repo.id')

所以,我遇到的麻烦是我的or_where。我希望or仅限于该available_until领域。但是,目前,我得到的结果是德语,这不是我想要的。如何将我的or_where过滤器available_until仅限制为该字段?

回答:

您可以只修改两行:

->where('(library.available_until >=', date("Y-m-d H:i:s"), FALSE)

->or_where("library.available_until = '00-00-00 00:00:00')", NULL, FALSE)

编辑:

省略该FALSE参数会将反引号放在方括号之前,并使它们成为表名称/值的一部分,从而使查询无法使用。

NULL参数存在于此仅仅是因为该函数要求第二个参数为值,并且由于我们没有第二个参数,因此我们发送NULL。

以上是 Codeigniter的`where`和`or_where` 的全部内容, 来源链接: utcz.com/qa/411891.html

回到顶部