Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么我会得到一个空的JSON_Php_Json - Fatal编程技术网

Php 为什么我会得到一个空的JSON

Php 为什么我会得到一个空的JSON,php,json,Php,Json,在我的代码中,一切正常,但最后一条语句似乎是错误的。它发回一个空的JSON流。我对语句进行了调试并尝试了错误处理,但一切都很好(为了更好地阅读,我删除了错误处理)。我搜索了很多,发现了很多,但要么是我太笨而使用谷歌,要么是我的特定问题没有帮助(可以打赌,第一个是正确的,但请不要生我的气:-) 我的代码是 function getMyClass() { global $con; header("Content-Type: application/json; charset=UTF-

在我的代码中,一切正常,但最后一条语句似乎是错误的。它发回一个空的JSON流。我对语句进行了调试并尝试了错误处理,但一切都很好(为了更好地阅读,我删除了错误处理)。我搜索了很多,发现了很多,但要么是我太笨而使用谷歌,要么是我的特定问题没有帮助(可以打赌,第一个是正确的,但请不要生我的气:-)

我的代码是

function getMyClass() {
    global $con;
    header("Content-Type: application/json; charset=UTF-8");
    $json = json_decode($_POST['myClass'], false);
    $klasseId = $json->{'klassenID'};
    $statement = $con->prepare("SELECT a.SchuelerId, Nachname, Vorname, Geburtsdatum FROM schuelerklasse AS a JOIN schueler AS b ON a.SchuelerId=b.SchuelerId WHERE a.KlassenId=?");
    $statement->bind_param("s", $klasseId);
    $statement->execute();
    $result = $statement->get_result();
    $rows = array();
    while ($r = $result->fetch_assoc()) {
        $rows[] = $r;
    }
    print json_encode($rows);
}
谢谢你的回答

好的,我找到了解决办法。 数据库是utf8编码的,应用程序是utf8编码的,但JSON字符串不接受äöü和ß。 但是(对我来说)奇怪的是,如果我把json_编码放在while循环中,我会得到一个结果。这不是有效的json,但它传递了dä、ö、ü和ß。好了,问题解决了

感谢所有试图帮助我的人

致意


Matthias

您确定查询找到了一些行吗?在phpMyAdmin中运行以验证某些版本的JSON不支持日期字段,在这种情况下,您必须将这些字段格式化为有效字符串。
var\u dump($rows)
是否提供了任何信息…?数据库的排序规则是什么?拉丁语1?如果是这种情况,并且结果集中有任何德语umlauts,那么json_encode将不起作用,因为它希望每个值都是utf8。@MikeAguilar
mysqli
将日期字段作为字符串返回。