MySQL / PHP - 尝试使用数组时出现致命错误?

时间:2014-09-19 20:45:26

标签: php mysql

尝试访问我正在访问的页面时出现以下错误。

  

致命错误:不能在第44行的/.../comment.php中使用mysqli_result类型的对象作为数组

任何人都可以帮助解决问题所在吗?第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

3 个答案:

答案 0 :(得分:0)

错误消息告诉您需要知道的所有内容:$posts包含mysqli_result,您需要首先使用mysqli_fetch_array()从中获取实际数据。

答案 1 :(得分: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'];

答案 2 :(得分: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);
}