我嘗試使用PDO::FETCH_OBJ
和json_encode
來從我的MySQL數據庫的一些數據,但因爲我在MySQL表中增加了一個DATE
-field這是行不通的。PHP使用fetchall PDO :: FETCH_OBJ和json_encode返回無效JSON
這是我的代碼如下所示:
$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
- 場,它的工作完全正常並且它返回了一堆對象的數組。現在它根本沒有返回任何數據。儘管如此,當我舉例時,請致電/api/teams/25
- 即使使用日期數據,我也會收到正確的數據。因此,當我想要一次接收所有團隊/數據時,它「僅」失敗。
有人可以告訴我什麼是錯的,以及如何解決它?
我也可以告訴大家,我試着這樣做:
foreach($teams as $team){
echo json_encode($team);
}
但這返回無效JSON數據,這是一組對象的無逗號分隔
編輯
我DB SCHEMA看起來像這樣,
id (int(11), primary_key, auto_increment)
team (varchar(255))
country (varchar(255))
league (varchar(255))
creation_day (date)
**編輯2 **
無效的JSON其中foreach
-example回報,看起來是這樣的:
{"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什麼架構? – Steve
數據庫模式 –