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. Есть ли какой-то способ, чтобы это обойти, но при этом логика осталась этой?


Ответы (0 шт):