@Lion97icvc

Как исправить ошибку mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement?

Добрый день. Только недавно разобралась с подготовленными запросами. Возникла проблема с выборкой из БД. При обычном запросе все идеально работает, но стоит сделать подготовленный запрос, то выдает ошибку mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement . Не понимаю в чем причина. Помогите, пожалуйста, разобраться.
$inputSearch = $_POST['search'];
        $inputSearch = trim($inputSearch); 
        $inputSearch = mysqli_real_escape_string($conn, $inputSearch);
        $inputSearch = htmlspecialchars($inputSearch);
        $sql = $conn->prepare("select * from post_comment where body like '%?%'");
        $sql->bind_param("s", $inputSearch);
        $sql->execute();
        $result = $sql->get_result();
        $itog = mysqli_fetch_assoc($result);


Ругается на $sql->bind_param("s", $inputSearch);
  • Вопрос задан
  • 46 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Плейсхолдером можно подставить только параметр, вы же пытаетесь использовать его как подстановку содержимого строки.
- $sql = $conn->prepare("select * from post_comment where body like '%?%'");
+ $sql = $conn->prepare("select * from post_comment where body like CONCAT('%', ?, '%')");
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Ведисофт Екатеринбург
от 25 000 ₽
YCLIENTS Москва
от 200 000 до 350 000 ₽
от 300 000 до 500 000 ₽
05 мая 2024, в 22:19
3000 руб./за проект
05 мая 2024, в 21:57
3500 руб./за проект