2014-09-19 2 views
-1

Я получаю следующую ошибку при попытке доступа к странице, на которой я подключен.MySQL/PHP - Получение фатальной ошибки при попытке использовать массив?

Fatal error: Cannot use object of type mysqli_result as array in /.../comment.php on line 44

Может ли кто-нибудь помочь в решении какой-либо проблемы? Линия 44 ниже ...

$posts = mysqli_query($sql, "SELECT * FROM posts WHERE postid = '$related'") or die($posts . "<br/>" . mysqli_error($sql)); 

$postsId = $posts['postid']; // <-- This is line 44 
+0

$ сообщений - это не массив, вот что он вам говорит. Вам нужно посмотреть на fetch_array – Hammerstein

+0

, это правильный ответ Hammerstein. вы должны были опубликовать его в качестве ответа. – heximal

+0

@heximal Мне не нравится публиковать такие вещи, если я не предоставляю ссылки или дополнительную информацию. Я не беспокоюсь о точках, больше о помощи. – Hammerstein

ответ

0

Сообщение об ошибке говорит вам все, что вам нужно знать: $posts содержит mysqli_result, из которого вам нужно, чтобы получить фактические данные первого использования mysqli_fetch_array(), например.

+1

Функция mysqli_fetch_array. –

0

Попробуйте:

$posts = mysqli_query($sql, "SELECT * FROM posts WHERE postid = '$related'") or die($posts . "<br/>" . mysqli_error($sql)); 
$postData = mysqli_fetch_array($posts); 
$postsId = $postData['postid']; 
0

$posts имеет тип mysqli_result. Это не массив. Массив будет описывать строку таблицы, но вы получите, вероятно, несколько строк таблицы с вашим SQL-запросом. Поэтому вам нужно зациклить их все, прежде чем вы получите массив с данными. Есть несколько возможностей сделать это:

Пример

$posts = mysqli_query($sql, "SELECT * FROM posts WHERE postid = '$related'") or die($posts . "<br/>" . mysqli_error($sql));  

while ($row = $posts->fetch_array()) { 
    // is_array($row) === true 
    var_dump($row["postid"]); 
} 

// or 

while ($row = $posts->fetch_object()) { 
    // ($row instanceof stdClass) === true 
    var_dump($row->postid); 
} 
Смежные вопросы