确定CodeIgniter活动记录是否已设置WHERE子句

时间:2014-04-23 20:45:13

标签: php codeigniter activerecord codeigniter-2

的sooo!好吧,标题应该说大部分内容。 有没有办法检查先前是否设置了$this->db-where('stuff', $data)

我可以出去对我自己的代码进行大量测试(标记等等),但我想知道是否有人知道一些快速简便的方法!

提前致谢!

[编辑 - 4月24日至14日] 这是我自己的代码。我必须变量nullStringarray。它们是$categories$budget。因此,如果预算设置为100$且类别设置为stuff,那么我将需要使用db->or_where,但如果只设置其中一个,我只需要使用{{1 }}。在这种情况下,检查是否设置了第一个是非常简单的,但是如果使用更多的值会怎么样?我希望你明白这一点:)

1 个答案:

答案 0 :(得分:0)

是的,您可以轻松确定是否设置了where子句。在CodeIgniter中,Active Record类将wheres存储在名为ar_where的数组中。您可以使用此数组来确定是否设置了where子句。

例如,请检查以下代码段:

$this->db->select()
            ->from("foo")
            ->where('bar',NULL);

        $this->db->or_where('xyz',NULL);

        print_r(sizeof($this->db->ar_where));

以下内容将输出2的值。因此,您可以使用此数组来检查结果。