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

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

Похожие вопросы