2014-10-18 4 views
0

я есть ошибка в моем коде при использовании функции 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'); 
?> 

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

Fatal error: Call to a member function fetch_assoc() on a non-object

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

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

+0

Вы уверены, что параметры вашего db-соединения верны? – nazim

ответ

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

я еще получил ошибку: –

+0

это ошибка: Примечание: Undefined переменной: MySQLi в C: \ XAMPP \ HTDOCS \ ИБАД \ PhpImage \ 05b_polling_process.php на линии 22 Фатальная ошибка: Вызов функции члена real_escape_string () на не-объекте в C: \ xampp \ htdocs \ IBAD \ PhpImage \ 05b_polling_process.php в строке 22 –

+0

@ DanielBoyMarpaung i обновил код – Ueli

Смежные вопросы