条件设置的更改建议

#1 swhmail@126.com

    if (is_array($conditions))
        {
            $join = array();
            foreach ($conditions as $key => $condition)
            {
                $condition = $this->escape($condition);
                $join[] = "{$key} = {$condition}";
            }
            $where = "WHERE ( " . join(" AND ", $join) . ")";
        } else
        {
            if (null != $conditions)
                $where = "WHERE ( " . $conditions . ")";
        }
更改为
    if (is_array($conditions))
        {
            $join = array();
            foreach ($conditions as $key => $condition)
            {
                $condition = $this->escape($condition);
               if ($key)
                          $join[] = "{$key} = {$condition}";
               else
                       $join[] = "{$condition}";
            }
            $where = "WHERE ( " . join(" AND ", $join) . ")";
        } else
        {
            if (null != $conditions)
                $where = "WHERE ( " . $conditions . ")";
        }
就应该可以处理如下条件
$condition= array('id'=>3,'age>15')

2012-04-28 12:09:48

#2 jake

从常用和不常用的情况出发,数组和字符串(可以实现上面的,更优雅)两种形态基本可以满足需求了。

更复杂的语法,与其增加学习成本和使用成本,倒不如直接通过findSql来做了

所谓更复杂的语法,举例看这里:http://cn.php.net/manual/zh/mongo.sqltomongo.php

感谢楼主的意见。

本贴将转移到意见反馈区。

2012-04-28 12:50:08