代码点火器中的多个 where() 调用或关联数组


Multiple where() calls or associative array in code igniter

我有一个查询,其中包含以下内容:

$this->db->where(array(
                 'jobs.open_intentions' => 1,
                 'jobs.open'            => 1, 
                 'jobs.pending'         => 0,
                 'jobs.awarded'         => 0));

这工作正常,但我不喜欢这种格式,实际上我宁愿这样写

$this->db->where('jobs.open_intentions', 1) 
         ->where('jobs.open', 1) 
         ->where('jobs.pending', 0)
         ->where('jobs.awarded', 0);

我知道尼特采摘,但无论如何,我的问题是,有什么理由我应该选择一种方法而不是另一种方法,或者这只是一个偏好问题?

语义上讲,后者(多个where(对我来说更像是多个AND子句。对于前者,意图尚不清楚(不查看 API 文档(。

虽然后来的方法很常用,但为了简单和清晰的代码,你也可以这样做

$where  =    array(
             'jobs.open_intentions' => 1,
             'jobs.open'            => 1, 
             'jobs.pending'         => 0,
             'jobs.awarded'         => 0
             );
$this->db->where($where);

我在后面的一个优点是你可以使用不同的where子句,例如or_where,where_in,or_where_in干净的代码,这在前面的代码中非常困难。但是,如果您使用单个运算符,则两者是相同的。