Если вы немного измените функциональность, вы сможете использовать подготовленный запрос со связанными параметрами.
скажем, у вас есть фильтры по цвету и размеру в данный момент, похоже, что вы бы назвали URL как
events.php?filter=Colour&filterValue=Red
events.php?filter=Size&filterValue=Large
Вы можете перейти к фильтру [имя] = значение
events.php?filterColour=Red
events.php?filterSize=Large
Javascript будет выглядеть примерно так
$('#filterEvents').click(function () {
document.location.href = 'events.php?filter' + $('#eventFilterOption').val() + '=' + $('#eventFilterInput').val();
});
Запрос может быть переписан следующим образом (при условии, столбцы размера и цвета)
$sql = "SELECT EV_Date, ....
WHERE
( '' = :colour OR Colour = :colour ) AND
( '' = :size OR Size = :size )
ORDER BY ....
и добавлен вызов для привязки фактических параметров
$query = $DB->prepare($sql);
$query->bindParam(':colour', $_GET['filterColour'], PDO::PARAM_STR, 12);
$query->bindParam(':size', $_GET['filterSize'], PDO::PARAM_STR, 12);
$query->execute();
Это позволяет использовать подготовленные запросы и избежать риска внедрения SQL
В качестве бонуса (или ошибки) он может поддерживать несколько параметров фильтра одновременно
events.php?filterSize=Large&filterColour=Red