PHP json_encode, производящий недопустимый JSON при хранении в MySQL - PullRequest
2 голосов
/ 20 мая 2011

Я уже немного погуглил без радости.Я использую стандартный массив PHP через $encoded = json_encode($myArray);

, прежде чем сохранить его в базе данных MySQL.В 99% случаев это нормально, но в нечетном случае закодированный JSON выглядит испорченным ....

{ "value": " }

хранится в базе данных.Это редкий случай, на самом деле я пока не могу воспроизвести его в своей локальной среде разработки, но разве вы не знаете, что пользователь может это сделать !!так что пользователь может вставлять хитрые символы, которые где-то ломают вещи, дело в том, что я перепробовал каждый символ, который мог придумать, и даже ввел в него символы, не относящиеся к UTF-8, и это никогда не вызывает вышеуказанного.

Я действительно изо всех сил пытаюсь добраться до сути этого.Прежде всего, я не могу понять, как json_encode дает результат, приведенный выше, возможно, выяснение этого поможет выяснить, что происходит, но я застрял.

Любой совет, помощь, указатель были бы потрясающими,

Выкл. Я иду, чтобы попытаться повторить это.

1 Ответ

0 голосов
/ 20 мая 2011

Убедитесь, что поле в вашей базе данных достаточно длинное. У меня была проблема, когда json-кодированные данные были длиннее, чем длина поля, и обрезались, что делало их недействительными ... Иногда, просто глядя на закодированные данные, трудно увидеть, что они обрезаются в конце. отобразите его на своей странице php и сравните с данными, попадающими в поле базы данных ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...