Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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:fetch_assoc()到数组中导致空值_Php_Json_Mysqli_Mariadb - Fatal编程技术网

PHP:fetch_assoc()到数组中导致空值

PHP:fetch_assoc()到数组中导致空值,php,json,mysqli,mariadb,Php,Json,Mysqli,Mariadb,我正试图从MariaDB的节日和各个地点的数据库中获取数据。运行时: while($row = $sth->fetch_assoc()){} 在输出值的同时迭代$row,得到数据库中的数据。 但是,在这样存储每一行时: while($row = $sth->fetch_assoc()){ $results[] = $row; } 并将结果作为JSON进行回显(回显JSON_encode($results);) 我明白了: {"id":"0","name":null,"vi

我正试图从MariaDB的节日和各个地点的数据库中获取数据。运行时:

while($row = $sth->fetch_assoc()){}
在输出值的同时迭代$row,得到数据库中的数据。 但是,在这样存储每一行时:

while($row = $sth->fetch_assoc()){
    $results[] = $row;
}
并将结果作为JSON进行回显(回显JSON_encode($results);) 我明白了:

{"id":"0","name":null,"village":"0","startDate":"2019-01-16",
"endDate":"2019-01-23","message":null}
这是针对现有Linux服务器的,我不管理它(我使用的是CPanel)。PHP版本为5.4和10.1.37

到目前为止,Stack Overflow和其他网站上的许多代码示例正在使用 $results[]=$row; 用于存储结果。 经过3年的Swift纯编程,我将回到PHP。。。所以我怀疑这可能是一个简单的问题来解决


谢谢

也许我回答这个问题有点太晚了,但它可能会帮助那些陷入这个问题的人。最近我遇到了一个类似的问题,我花了3天时间才明白这是一个utf-8字符的问题。数据库中存储的数据非常好。但当通过json_encode()返回时,它根本不显示任何数据,因为json_encode只支持utf-8 data()

对于您的情况,以下方法应该有效-

foreach ($results as &$r) {
    $r['name'] = utf8_encode($r['name']);
    //same for all other items
}

那么,真正的问题是什么?该行可能实际具有这些列的空值。如果看不到数据,很难判断。例如,“name”和“message”列中都有字符串。。。当我迭代$row时,我可以回显输出。当我在$results中存储每一个$row时,我似乎只能得到null。。。这很奇怪,因为它只发生在字符串值上。这可能是一个字符集问题吗?
var_dump($results)
输出是什么,您能提供您正在运行的查询吗?$sth=$mysqli->query(“选择*来自节日”);var_dump工作,所有数据,包括字符串都在那里。。。发生了什么事?英雄联盟