mySqli Bind Parameter LIKE с подстановочным знаком

У меня возникают проблемы, связывающие LIKE с Wildcard в моем подготовленном сообщении в MySQLi. Я попробовал следующие методы ниже, как показано, и concat (обновлено с помощью ввода @fancyPants)

Он работает без инструкции LIKE.

Я мог только вытащить данные из определенного термина поиска. Что-то не так с моим кодом?

 $str = $_POST["searchstr"]; if(isset($_POST['submit'])) { $price=$_POST['price']; if(!empty($_POST['chkbx'])) { foreach($_POST['chkbx'] as $selected) { $sql= 'SELECT bookTitle, bookPrice FROM nbc_book WHERE catID LIKE "%'.$selected.'%" AND bookTitle LIKE "%'.$str.'%" AND bookPrice < ?'; $stmt=mysqli_prepare($con,$sql); mysqli_stmt_bind_param($stmt,"i",$price); mysqli_stmt_execute($stmt); mysqli_stmt_bind_result($stmt, $bookTitle, $bookPrice); while ($stmt->fetch()) { echo $bookTitle.$bookPrice."<br>"; } } } } 

 $searchStr = 'oracle'; $sql= 'SELECT bookTitle, bookPrice FROM nbc_book WHERE catID LIKE ? AND bookTitle LIKE "%'.$searchStr.'%" AND bookPrice < ?'; $stmt=mysqli_prepare($con,$sql); mysqli_stmt_bind_param($stmt,"ssi",$selected,$price); mysqli_stmt_execute($stmt); mysqli_stmt_bind_result($stmt, $bookTitle, $bookPrice); while ($stmt->fetch()) { echo $bookTitle; }