Par souci d'exhaustivité (car je ne peux pas encore ajouter de commentaires), permettez-moi également d'ajouter ce détail comme une autre réponse:
(Edit: A lire après s'être rendu compte que les données source (c'est-à-dire dans le cas de l'OP, l'ensemble de résultats de la base de données) pourraient être le problème (en renvoyant des colonnes numériques sous forme de chaînes), et json_encode () en fait n'était pas la source du problème)
Pages de manuel des deux " mysql_fetch_array ":
Renvoie un tableau de chaînes qui correspond à la ligne récupérée,
... et " mysql_ fetch_ row ":
Renvoie un tableau numérique de chaînes correspondant à la ligne extraite
indique clairement que; les entrées du tableau renvoyé seront des chaînes.
(J'utilisais la classe DB dans phpBB2 (oui je sais, c'est obsolète!), Et la méthode "sql_fetchrow ()" de cette classe utilise "mysql_fetch_array ()")
Sans m'en rendre compte, j'ai aussi fini par trouver cette question, et comprendre le problème! :)
Comme Pascal Martin l'a déclaré ci-dessus dans ses commentaires de suivi, je crois qu'une solution qui prend en charge le problème du "type incorrect" à la source (c'est-à-dire en utilisant la fonction " mysql_field_type () " et en faisant le casting juste après fetch, (ou d'autres méthodes de récupération comme "objet"?)) seraient les meilleures en général.