Мне нужен дополнительный набор глаз на этот. Любая помощь будет оценена. Это очень простой поисковый запрос, но по какой-то причине я не могу найти ошибку. Ну, я знаю, где ошибка. Я просто не могу пройти мимо. В любом случае .....
Я беру поисковое значение из переменной POST, задаю эту переменную, а затем устанавливаю переменную столбца следующим образом ...
$term = "'%".$_POST['searchTerm']."%'";
$field = "columnName";
Когда я повторяю это, они подходят идеально. Поэтому, если я введу «a» в форме, я буду отображать «% a%» и columnName.
Затем я готовлю запрос и связываю параметры следующим образом ...
$suquery=$dbCon->prepare("select * from Table where ? LIKE ?");
$suquery->bind_param('ss', $field, $term);
$suquery->execute();
Результат всегда возвращает 0 строк. Когда я играю с этим, я обнаружил, что ни один связанный параметр не работает правильно, несмотря на то, что он отражается, как и должно быть. Например, когда я изменяю запрос так, чтобы столбец был жестко запрограммирован и связывал только поисковый термин ...
$suquery=$dbCon->prepare("select * from Table where columnName LIKE ?");
$suquery->bind_param('s', $term);
$suquery->execute();
Я все еще получаю ноль возвращаемых строк. Это говорит мне о том, что хотя $ field отображает эхо как «% a%», что-то по-прежнему отключено. Я действительно в замешательстве. Точно так же, когда я жестко связываю поисковый термин и связываю столбец ....
$suquery=$dbCon->prepare("select * from Table where ? LIKE '%a%'");
$suquery->bind_param('s', $field);
$suquery->execute();
Я получил слишком много возвращенных строк. Это на самом деле извлекает строки из таблицы, где значение в любом столбце содержит букву «а». Таким образом, ни столбец, ни термин не являются обязательными. Mayday!