我有一个变量是我的查询的过滤器:
$filterString.=" AND venue = ".$venue;
我希望这个变量(当被调用时)将 AND 过滤器语句添加到我的查询中。
我的查询如下(尝试失败):
mysql_query("SELECT * FROM event
WHERE city = '$city' " . $filterString . "
ORDER BY date ASC");
我认为venue
需要用单引号括起来:
$filterString.=" AND venue = '".$venue.".";
但是,最好使用参数化查询,而不是直接在 SQL 字符串中嵌入查询。
你可以使用:
$filterString .= !empty($venue) ? " AND venue = '$venue'" : '';
在开始时替换您想要的任何测试,如果 $venue 不适用于过滤器,则想法是返回一个空白字符串。
要回答您的其他评论问题:
WHERE 1
是一个像任何东西一样工作的有效条件