json_encode返回充满null的数组

时间:2018-08-28 14:40:11

标签: php arrays json

首先输入我的代码:

<?php 

    include($_SERVER['DOCUMENT_ROOT'].'/website/dbConnection.php');


    function filterTable($searchquery)  
    {   
        $filter_Result = mysqli_query($GLOBALS['connect'], $searchquery);
        return $filter_Result;
    }


    $searchquery = "SELECT Titel, Vorname, Name, Unternehmen, Gruppe FROM mitglieder";
    $searchresult = filterTable($searchquery) or die("Tabelle kann nicht angezeigt werden");

    echo json_encode($searchresult);

?>

我发现了多则帖子,其中最受欢迎的是this

所以我尝试了这个:

$filter_Result = mysqli_query($GLOBALS['connect'], 'SET CHARACTER SET utf8', $searchquery);

我也把它放在connect变量之前和它自己的函数中,因为我不确定如何利用它,但是没有帮助。当我把它作为参数时,它实际上发出了解析错误。

当我回显数组之前,将其发送出去完全正常。使用json_encode()之后,所有内容都会被擦除,并且我的数组中充满了null。您可以在下面的图片中看到它。我回显了Array,然后以Array为参数回显了json_encode。黄色标记的行是json_encode,您可以在其中突然看到所有内容都为空。

有人知道我在做什么错吗?

编辑:忘记提及那些是我查询中的德语单词。只需忽略这些,因为问题不在于SQL查询。

编辑2:建议的帖子没有回答我的问题,因为它不是一个类似的问题。用户的另一个问题是使用多维数组,它们返回不同的结果。虽然它接近我的问题所在,但它既不是同一问题,也不是同一解决方案。

1 个答案:

答案 0 :(得分:3)

如@Jeff注释:mysqli_query返回结果对象。

请参见mysqli_fetch_all Documentation

尝试运行:

$data = mysqli_fetch_all($searchresult);
echo json_encode($data );