PHP MYSQLI数据库查询在撇号后不返回字符串

时间:2018-07-20 05:57:56

标签: php database mysqli prepared-statement

我有一个PHP搜索功能,该功能不会在单引号后返回字符串字符。 (金州花园)将返回(金州)。我正在使用的代码如下。我正在寻找答案,但似乎大多数回复都对转义字符串发表了评论。我已经在数据库中获取了信息,并尝试通过查询检索它,代码为

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>  

1 个答案:

答案 0 :(得分:-1)

您可以使用:

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

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