PHP非法字符串偏移(输出单个值时出错)

时间:2014-12-13 03:32:20

标签: php arrays

我在我的functions.php文件中创建了一个数组,可以在另一个页面上访问。然后我返回了数组并在另一个页面上调用它。这就是我所拥有的:

在我的functions.php文件中,我有

public function getpostcontent($userid){
    include('db-conx.php');
    $getval = "SELECT `content`,`date` FROM posts WHERE userid = ?";
    $stmt = $conn->stmt_init();
    if ($stmt->prepare($getval))
    {
        //$userid = $_SESSION['userid'];
        $stmt->bind_param("s", $userid);
        $stmt->execute();
        $stmt->bind_result($content, $date);
        while ($stmt->fetch()) {
            $displayname = getdisplayname($userid);
            $array = [
            "content" => $content,
            "date" => $date,
            ];
        }
        return $array;

    }
}

我使用它来访问我的另一页上的数组。

$posts = new getposts();
$returned=$posts->getpostcontent($userid);
foreach($returned as $val)
{
    echo $val['content'];
}

我已经尝试过在谷歌和其他地方找到的所有解决方案,但没有运气。它在我使用print_r($ val)时有效;检索数组中的所有元素,但抛出非法字符串偏移量'当我尝试单独访问它们时。帮助

1 个答案:

答案 0 :(得分:1)

我可以看到的一个问题是

的每次迭代
while ($stmt->fetch())

每次都在写变量$ array,最后返回最后一个数组。改变

$array 

$array[] 

为了收集每次迭代,所以for循环不只是迭代一个数组的键值对。