У меня есть этот PHP кодПростая функция поиска возврат всегда найдено 0
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";
}
}
var_dump($likeString)
показывает слово, которое я отправил через поисковую форму правильно. Также я пробовал в phpmyadmin непосредственно для запуска этого запроса
SELECT * FROM images WHERE image_caption LIKE "%Volvo%"
И я получил 1 результат, который является правильным. На странице я вижу 0 results
. Пытался играть с извлечением:
$res->fetch_assoc()
$res->fetchAll()
$res->fetch()
Ни один из них не показал никакого результата. Я уверен, что это очень глупая и простая ошибка, но я не вижу этого. Пожалуйста, помогите по этому поводу.
У меня нет Call to a member function bind_param() on a non-object
Это была моя ошибка, в то время как я сделал предложенные изменения из одного из ответов. Проблема по-прежнему остается - 0 Результаты
UPDATE: Текущий код
$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";
}
}
UPDATE 2: DB соединение checked-> результат 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";
Replcae эти две строки: $ запрос = $ conn-> (SELECT * FROM images WHERE image_caption LIKE% ". $ _ POST ['search']."% "); // $ query-> bind_param ('s', $ likeString); –
Ошибка: 'Вызов функции-члена execute() для объекта, не являющегося объектом. – Jason
. Var * $ res * не указан в вашем' $ res-> num_rows> 0' is * false * – varlogtim