0

我有一个变量是我的查询的过滤器:

$filterString.=" AND venue = ".$venue;

我希望这个变量(当被调用时)将 AND 过滤器语句添加到我的查询中。

我的查询如下(尝试失败):

mysql_query("SELECT * FROM event 
WHERE city = '$city' " . $filterString . " 
ORDER BY date ASC");
4

2 回答 2

1

我认为venue需要用单引号括起来:

$filterString.=" AND venue = '".$venue.".";

但是,最好使用参数化查询,而不是直接在 SQL 字符串中嵌入查询。

于 2013-08-31T03:57:12.500 回答
0

你可以使用:

$filterString .= !empty($venue) ? " AND venue = '$venue'" : '';

在开始时替换您想要的任何测试,如果 $venue 不适用于过滤器,则想法是返回一个空白字符串。

要回答您的其他评论问题:

WHERE 1

是一个像任何东西一样工作的有效条件

于 2013-08-31T06:06:23.937 回答