【发布时间】:2019-06-08 18:10:50
【问题描述】:
我正在尝试从 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 和其他网站上的很多代码示例都在使用 $结果[] = $行; 用于存储结果。 在只使用 Swift 编程 3 年后,我将返回 PHP ......所以我怀疑这可能是一个简单的问题来解决......
谢谢!
【问题讨论】:
-
那么实际的问题是什么?该行实际上可能具有这些列的空值。没有看到数据,很难判断。
-
例如“name”和“message”列中都有字符串......当我遍历$row时,我可以回显输出。当我将每个 $row 存储在 $results 中时,除了 null 之外,我似乎什么也得不到……这很奇怪,因为它只发生在字符串值上。会不会是字符集问题?
-
var_dump($results)输出是什么,你能提供你正在运行的查询吗? -
$sth = $mysqli->query("SELECT * FROM Festivals");
-
var_dump 工作,所有数据,包括字符串都在那里......发生了什么?大声笑