J'essaie d'aller chercher des données dans ma base de données MySQL en utilisant PDO::FETCH_OBJ
et json_encode
mais cela ne fonctionne pas car j'ai ajouté un champ DATE
dans la table MySQL.PHP fetchAll PDO :: FETCH_OBJ et json_encode renvoie invalide JSON
C'est ce que mon code ressemble à:
$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().'}';
}
});
Avant ajouté le DATE
-field, cela a fonctionné parfaitement bien et il rentrait un tableau avec un tas d'objets. Maintenant, il ne renvoie aucune donnée du tout. Même si, par exemple, j'appelle /api/teams/25
- je reçois les données correctes, même avec les données de date. Donc, cela "seulement" échoue quand je veux recevoir toutes les équipes/données à la fois. Est-ce que quelqu'un peut me dire ce qui ne va pas et comment le réparer?
Je peux aussi dire que j'ai essayé de le faire:
foreach($teams as $team){
echo json_encode($team);
}
Mais ce retour des données JSON invalides, ce qui était un tas d'objets sans séparation par des virgules
EDIT
Mon DB SCHEMA ressemble à ceci,
id (int(11), primary_key, auto_increment)
team (varchar(255))
country (varchar(255))
league (varchar(255))
creation_day (date)
** EDIT 2 **
Le JSON invalide qui les foreach
retours -example, ressemble à ceci:
{"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"}
..et ainsi de suite
pouvez-vous publier votre schéma? –
@JeffPuckett quel schéma? – Steve
schéma de base de données –