【发布时间】:2017-09-25 20:22:59
【问题描述】:
我尝试使用 PDO::FETCH_OBJ 和 json_encode 从我的 MySQL 数据库中获取一些数据,但它不起作用,因为我在 MySQL 表中添加了一个 DATE 字段。
这是我的代码的样子:
$app->get('/api/teams', function(Request $request, Response $response) {
$sql = "SELECT * FROM teams";
try {
$db = new db();
$db = $db->connect();
$stmt = $db->query($sql);
$teams= $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;
echo json_encode($teams);
} catch(PDOException $e) {
echo '{"error": {"text": '.$e->getMessage().'}';
}
});
在我添加 DATE-field 之前,它工作得非常好,它返回了一个包含一堆对象的数组。现在它根本不返回任何数据。即使,例如当我打电话给/api/teams/25 - 我收到正确的数据,即使是日期数据。因此,当我想一次接收所有团队/数据时,它“仅”失败。
谁能告诉我哪里出了问题以及如何解决?
我也可以说我尝试过这样做:
foreach($teams as $team){
echo json_encode($team);
}
但是这返回了无效的JSON数据,是一堆没有逗号分隔的Objects
编辑
我的 DB SCHEMA 看起来像这样,
id (int(11), primary_key, auto_increment)
team ( varchar(255) )
country ( varchar(255) )
league ( varchar(255) )
creation_day ( date )
** 编辑 2 **
foreach-example 返回的无效 JSON 如下所示:
{"id":"27", "Bayern München", "country":"Germany", "league": "Bundesliga, "creation_day": "2016-10-14"} {"id":"28", "Borussia Dortmund", "country":"Germany", "league": "Bundesliga, "creation_day": "2016-10-14"}
..等等
【问题讨论】:
-
你能发布你的架构吗?
-
@JeffPuckett 什么架构?
-
数据库架构
-
@JeffPuckett 查看已编辑的问题/帖子
-
你需要发布一个“坏”数据的例子,否则我们无法告诉你它有什么问题。