我正在尝试从节日和相应地点的MariaDB数据库中获取数据。运行时:
while($row = $sth->fetch_assoc()){}
并在输出值时遍历$ row,我得到的数据与数据库中的数据相同。 但是,当像这样存储每一行时:
while($row = $sth->fetch_assoc()){
$results[] = $row;
}
并将结果作为JSON回显(echo json_encode($ results);) 我明白了:
{"id":"0","name":null,"village":"0","startDate":"2019-01-16",
"endDate":"2019-01-23","message":null}
这适用于我不管理的现有Linux服务器(我正在使用CPanel)。 PHP版本是5.4和MariaDB 10.1.37。
到目前为止,Stack Overflow和其他网站上的许多代码示例都在使用 $ results [] = $ row; 用于存储结果。 经过3年的仅Swift编程后,我将返回PHP。所以我怀疑这可能是一个简单的解决问题...
谢谢!
答案 0 :(得分:-1)
回答这个问题可能为时已晚,但是它可能会帮助某些人解决这个问题。最近,我遇到了类似的问题,花了三天的时间才知道这是utf-8字符的问题。存储在数据库中的数据非常好。但是,当通过json_encode()返回它时,它根本不显示任何数据,因为json_encode仅支持utf-8数据(reference)。
对于您的情况,以下方法应该有效-
foreach ($results as &$r) {
$r['name'] = utf8_encode($r['name']);
//same for all other items
}