SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
Пытаюсь реализовать фильтр с использованием PDO. На странице есть форма с несколькими полями, например имя и город. После отправки формы в обработчик, там происходит следующее:
if(isset($_POST["filter"])) {
$loginid = $_SESSION["id"];
$sqlbase="WHERE id!='$loginid'";
$identity = array (
'name' => $_POST["name"],
'city' => $_POST["city"],
);
if(isset($_POST["name"]) && $_POST["name"]!="") {
$sqlbase .= "&&name=:name";
}
if(isset($_POST["city"]) && $_POST["city"]!="") {
$sqlbase .= "&&city=:city";
}
$user->searchquery();
}
Там происходит добавление параметров в запрос и выводит нужные элементы. Проблема в том, что биндятся параметры через Array и если в фильтре введены оба значения, то всё ок, а если только одно, то выдаёт ошибку SQLSTATE[HY093]: Invalid parameter number: parameter was not defined. Есть ли какой-то способ, чтобы это обойти, но при этом логика осталась этой?