php – mySqli使用通配符绑定参数LIKE

前端之家收集整理的这篇文章主要介绍了php – mySqli使用通配符绑定参数LIKE前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我遇到了将LIKE与Wildcard绑定到我在 MySQLi中准备好的语句的问题.我尝试了以下两种方法,如图所示& concat.(用@fancyPants输入更新)

>有没有办法让我可以在绑定发生后查看自己的sql语句?
>如何正确绑定它以获得我想要的结果?

它没有LIKE语句.

我只能从使用某个搜索词中提取数据.我的代码有什么问题吗?

  1. $str = $_POST["searchstr"];
  2.  
  3.  
  4. if(isset($_POST['submit']))
  5. {
  6. $price=$_POST['price'];
  7.  
  8.  
  9. if(!empty($_POST['chkbx']))
  10. {
  11. foreach($_POST['chkbx'] as $selected)
  12. {
  13.  
  14.  
  15. $sql= 'SELECT bookTitle,bookPrice FROM nbc_book WHERE catID LIKE "%'.$selected.'%" AND bookTitle LIKE "%'.$str.'%" AND bookPrice < ?';
  16. $stmt=MysqLi_prepare($con,$sql);
  17. MysqLi_stmt_bind_param($stmt,"i",$price);
  18. MysqLi_stmt_execute($stmt);
  19. MysqLi_stmt_bind_result($stmt,$bookTitle,$bookPrice);
  20. while ($stmt->fetch()) {
  21. echo $bookTitle.$bookPrice."<br>";
  22. }
  23. }
  24. }
  25. }
  1. $searchStr = 'oracle';
  2. $sql= 'SELECT bookTitle,bookPrice FROM nbc_book WHERE catID LIKE ? AND bookTitle LIKE "%'.$searchStr.'%" AND bookPrice < ?';
  3. $stmt=MysqLi_prepare($con,$sql);
  4. MysqLi_stmt_bind_param($stmt,"ssi",$selected,$price);
  5. MysqLi_stmt_execute($stmt);
  6. MysqLi_stmt_bind_result($stmt,$bookPrice);
  7. while ($stmt->fetch()) {
  8. echo $bookTitle;
  9. }

猜你在找的PHP相关文章