Кажется, ваша проблема в сочетании запроса и переменных, которые вы связываете:
Запрос построен так:
// You use `=` to compare values
$request = $request.$clé." = :".$clé
И вы связываете свои переменные следующим образом:
// You use `%` characters as if it is a `LIKE`
$statement->bindValue($clé, '%'.$val.'%');
^ ^ here you have a problem
Вы используете %
знаки, как если бы вы использовали символы подстановки в условии LIKE
, но вы используете =
.
Теперь ваш запрос ищет буквенные строкикоторые окружены %
знаками.Которого (вероятно ...) не существует.
Так что либо используйте LIKE
вместо =
, либо избавьтесь от символов %
, где вы связываете переменные:
$statement->bindValue($clé, $val);