【问题标题】:Determine if CodeIgniter active record have set a WHERE-clause确定 CodeIgniter 活动记录是否设置了 WHERE 子句
【发布时间】:2014-04-23 20:45:12
【问题描述】:

太棒了!好吧,标题应该说大部分。 有什么方法可以检查$this->db-where('stuff', $data)之前是否设置过?

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

提前致谢!

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

【问题讨论】:

  • 我想你为什么需要这个功能有点令人困惑。您是否有理由不知道是否使用了 where 子句?这可能更多是设计问题而不是框架功能问题。能否举例说明如何使用?
  • 你在处理别人的代码吗??
  • 请看问题的编辑:)

标签: php codeigniter activerecord codeigniter-2


【解决方案1】:

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

例如检查以下代码 sn -p :

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

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

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

下面将输出一个值2。所以你可以使用这个数组来检查你的结果。

【讨论】:

    猜你喜欢
    • 2012-04-09
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    相关资源
    最近更新 更多