使用2argument的函数内的mysql查询

时间:2014-01-23 21:31:14

标签: php mysql

我的功能就是这个

function all_products($where, $condition, $where2, $condition2) {
    $query = "SELECT *
              FROM `product` 
              WHERE 
              ".mysql_real_escape_string($where)." = '".mysql_real_escape_string($condition)."'  
              and  
              ".mysql_real_escape_string($where)." = '".mysql_real_escape_string($condition)."' 
              ";
    $query_run = mysql_query($query);
    return $query_run;
}

因此,每当我尝试使用此函数从db获取数据时,即使只有$ where和$ condition为true且$ where2和$ condition2为false,它也会返回行。

1 个答案:

答案 0 :(得分:0)

您可以支持可变长度的条件。

function all_products(array $assoc) {
    foreach ($assoc as $key => $value) {
        $pairs[] = sprintf(
            "`%s` = '%s'",
            addcslashes($key, '`'),
            mysql_real_escape_string($value)
        );
    }
    $sql = empty($pairs) ?
           'SELECT NULL LIMIT 0' :
           'SELECT * FROM `product` WHERE ' . implode(' AND ', $pairs);
    return mysql_query($sql);
}

但是,所有mysql_*个功能都已 DEPRECATED 。我强烈建议您迁移到PDOmysqli