WHERE 子句的存在是为了帮助我们过滤结果,我从用户那里得到一个值,它告诉我如何过滤结果,例如
WHERE brand="'$brand_that_chosen_by_user'"
选项之一是每个品牌,这意味着根本不过滤。那么 $brand_that_chosen_by_user 需要什么值,以便 WHERE 子句不会过滤事物并返回所有品牌结果。
在添加 where 子句之前,您将首先测试他们是否选择了 ALL 值。
$sql = " SELECT * FROM tbl";
if($brand != 'ALL'){
$sql .= " WHERE brand = '{$brand}'";
}
$brand_that_chosen_by_user = union select user,password from
users
你有两个选择。
根据需要动态添加WHERE
子句:
if ($brand != 'Every brand') {
$sql .= " WHERE brand = :brand";
}
或者让您的 SQL 语句将此作为特殊情况处理:
SELECT * FROM some_table WHERE :brand = 'Every brand' OR brand = :brand
我正在使用PDO 准备好的语句(以防止 SQL 注入),因此在这两种情况下,您都需要将参数与$statement->bindParam("brand", $brand);
.