微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我遇到了将LIKE与Wildcard绑定到我在 MySQLi中准备好的语句的问题.我尝试了以下两种方法,如图所示& concat.(用@fancyPants输入更新)

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

它没有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,$bookPrice); 
while ($stmt->fetch()) {
    echo $bookTitle;
}

原文地址:https://www.jb51.cc/php/139094.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐