Неустранимая ошибка: вызов функции-члена fetch_assoc () для необъекта

у меня ошибка в моем коде при использовании функции fetch_assoc

<?php
include_once('functions.php');

$book_selected=$_POST['book_selected'];
$database = new mysqli('127.0.0.1', 'user', 'user', 'library');
$query = 'SELECT * FROM book WHERE title=\'' . $book_selected . '\'';
$result_set = $database->query($query);
$row = $result_set->fetch_assoc();
var_dump($row);
$query = 'UPDATE poll_result SET num_poll = num_poll + 1 WHERE id='. $row['id'];
$database->query($query);
redirect('show_polling.php');
?>

и я получил ошибку:

Неустранимая ошибка: вызов функции-члена fetch_assoc () для необъекта

Я не знаю, как это исправить.

Спасибо за совет

0

Решение

Я уверен, что в вашем запросе есть ошибка.

Попробуй это:

<?php
include_once('functions.php');

$database = new mysqli('127.0.0.1', 'user', 'user', 'library');

if ($database->connect_error) {
die('Connect Error: ' . $database->connect_error);
}

$book_selected =  $database->real_escape_string($_POST['book_selected']);
$query = 'SELECT * FROM book WHERE title=\'' . $book_selected . '\'';

$result_set = $database->query($query);

if (!$result_set) {
die(sprintf("Error: %s", $database->error));
}

$row = $result_set->fetch_assoc();

var_dump($row);

$query = 'UPDATE poll_result SET num_poll = num_poll + 1 WHERE id='. $row['id'];
$database->query($query);

redirect('show_polling.php');
?>

Кроме того, вы не должны передавать переменную непосредственно в запрос (возможность SQL-инъекций). В приведенном выше примере я избежал запроса с помощью mysqli :: real_escape_string, но обычно лучше подготовить запрос: http://php.net/manual/en/mysqli.prepare.php

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]