Для полноты (поскольку я пока не могу добавлять комментарии) позвольте мне также добавить эту деталь в качестве еще одного ответа:
(Изменить: для чтения после осознания того, что исходные данные (т.е. в случае OP, набор результатов базы данных) могут быть проблемой (путем возврата числовых столбцов в виде строк), а json_encode () на самом деле не был источником проблемы)
Страницы руководства для " mysql_fetch_array ":
Возвращает массив строк , соответствующий выбранной строке,
... и " mysql_ fetch_ row ":
Возвращает числовой массив строк , соответствующий выбранной строке.
четко заявляет, что; записи в возвращаемом массиве будут строками.
(Я использовал класс DB в phpBB2 (да, я знаю, он устарел!), А метод sql_fetchrow () этого класса использует mysql_fetch_array ())
Не осознавая этого, я тоже нашел этот вопрос и понял проблему! :)
Как Паскаль Мартин заявил выше в своих последующих комментариях, я считаю, что решение, которое решает проблему «неправильного типа» в источнике (то есть, используя функцию « mysql_field_type () » и выполняя приведение сразу после выборки, (или другие методы выборки, такие как "объект"?)) в целом были бы лучше.