首页 > 解决方案 > PHP MYSQLI数据库查询在撇号后不返回字符串

问题描述

我有一个 PHP 搜索函数,它在撇号后不返回字符串字符,例如。(Golden State's Garden) 将回归 (Golden State)。我正在使用的代码如下。我正在寻找答案,但似乎大多数回复都评论了转义字符串。我已经在数据库中有信息,并试图用查询来检索它,代码是

if (isset($_POST["search_submit"]))  {

    if(empty(trim($_POST["search"]))){
        echo 'Please search for an item';
    } else{
        $find = "%".(trim($_POST["search"]))."%";
        $sql = ("SELECT * FROM combine WHERE a_product 
                    LIKE ? OR b_product LIKE ? ");
        $stmt = mysqli_stmt_init($conn);
        if(!mysqli_stmt_prepare($stmt, $sql)){
           echo "connection failed, try again later";
        }else{
            mysqli_stmt_bind_param($stmt, "ss", $find, 
                $find);
            mysqli_stmt_execute($stmt);


if(!empty($_SESSION['basket'])){ 
        foreach($_SESSION['basket'] as $key => $value){ 
    <tr>  
       <td><?php echo $value["name"]; ?></td>  

标签: phpdatabasemysqliprepared-statement

解决方案


您可以使用:

$find="%".mysqli_real_escape_string($_POST['search'])."%";

它将获得您想要的完整字符串结果。


推荐阅读