2014-09-19 64 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

$ posts不是一个数组,这就是它告诉你的。你需要看看fetch_array – Hammerstein 2014-09-19 20:47:59

+0

这是Hammerstein的正确答案。你必须将其作为答案发布。 – heximal 2014-09-19 20:49:02

+0

@heximal如果我没有提供链接或更多信息,我不喜欢发布这样的内容。我并不担心积分,更多的是关于帮助。 – Hammerstein 2014-09-19 20:51:02

回答

0

错误消息告诉你,你需要知道的一切:$posts包含您需要先使用mysqli_fetch_array(),例如得到实际数据的mysqli_result

+1

函数是mysqli_fetch_array。 – 2014-09-19 20:57:51

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

$postsmysqli_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); 
} 
相关问题