需要关于变量查询构建的意见

时间:2011-08-06 14:42:54

标签: php

我正在尝试构建一些函数来可变地从数组中构建查询。我需要知道我是否真的正确地做到了。现在我想知道这个构建变量“WHERE”的函数是否正常,或者应该进行改进。

感谢任何意见/提示。

private function buildWhereFromArray($var, $array, $count)
    {
        $where = '(';
        for($i = 0; $i <= ($count - 1); $i++)
        {
            if(!is_numeric($array[$i]))
            {
                return false;
            }
            $where .= '('.$var.' = '.$array[$i].')';
            if($i != ($typeCount - 1))
            {
                $where .= ' AND ';
            }
        }
        $where .= ')';
        return $where;
    }

变量应该是显而易见的。

2 个答案:

答案 0 :(得分:2)

AND似乎很奇怪。让我们说$array[0]!=$array[1]

如何使$ var = $ array [0] AND $ var = $ array [1]

需要你吗?

此外,您可以使用更短的

implode(' AND ',array_filter(array_map(function($elem){
    if(!is_numeric($elem))
        return ''; //will be filtered
    return '('.$var.' = '.$elem.')';
},$arr)));

答案 1 :(得分:2)

如果要将结果集限制为fooabc,则可以使用mysql IN()函数。

$where = "WHERE `{$var}` IN('a', 'b', 'c')";