简单搜索功能总是返回0结果

Jas*_*son 3 php mysql

我有这个PHP代码

if(isset($_POST['submit'])){

$likeString = '%' . $_POST['search'] . '%';
$query = $conn->prepare("SELECT * FROM images WHERE image_caption LIKE ?");
$query->bind_param('s', $likeString);
$query->execute();

    var_dump($likeString);
    if (!$query) {
      printf("Query failed: %s\n", $mysqli->error);
      exit;
    }   
    if($res->num_rows > 0) {
       while ($row = $res->fetch_assoc()) {          
             echo "<br>Title: " . $row['image_caption'];          
       }
    } else { 
          echo " <br> 0 results"; 
    }

}
Run Code Online (Sandbox Code Playgroud)

var_dump($likeString)显示我通过搜索表单正确发布的单词.我也试过直接运行phpmyadmin来运行这个查询

SELECT*FROM images WHERE image_caption LIKE"%Volvo%"

我收到了1个正确的结果.在页面上我看到了0 results.试图玩获取:

$res->fetch_assoc()
$res->fetchAll()
$res->fetch()
Run Code Online (Sandbox Code Playgroud)

没有一个显示任何结果.我确信这是一个非常愚蠢和简单的错误,但看不到它.请帮忙.

我没有Call to a member function bind_param() on a non-object这是我的错误,而我从一个答案提出了改变建议.问题仍然存在 - 0结果

更新:当前代码

$likeString = "%{$_POST['search']}%";
$query = $conn->prepare("SELECT * FROM images WHERE image_caption LIKE ? ");
$query->bind_param('s', $likeString);
$query->execute();

    if($query->num_rows > 0) {
       while ($row = $query->fetch()) {          
             echo "<br>Title: " . $row['image_caption'];          
       }
    } else { 
          echo " <br> 0 results"; 
    }

}
Run Code Online (Sandbox Code Playgroud)

更新2:检查数据库连接 - >结果是 Connected successfully

$servername = "localhost";
$username = "mydbUsername"; // it's changed for the question
$password = "myPass"; // it's changed for the question
$dbname = "myDbName"; // it's changed for the question

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
Run Code Online (Sandbox Code Playgroud)

nos*_*por 5

你正在使用$res它没有定义...你必须使用$query.下次打开错误报告,看看这些愚蠢的错误