PHP json_encode存储在MySQL中时产生无效的JSON

时间:2011-05-20 13:15:38

标签: php json

我已经谷歌搜索了一下,没有任何快乐。我通过$encoded = json_encode($myArray);

运行标准PHP数组

将其存储在MySQL数据库中之前。 99%的情况下,这很好,但在奇怪的情况下,编码的JSON看起来已损坏....

{ "value": " }

存储在数据库中。这是一个罕见的场合,事实上我还没有在我的本地开发环境中复制它,但你不知道用户可以!!

存储的数据来自表单上的<textarea>,因此用户可能会放入一些在某处破坏事物的狡猾角色,事情是我已经尝试了每个我能想到的角色,甚至强迫非UTF-8字符,它永远不会导致上述情况。

我真的很难找到底线。首先,我无法看到json_encode如何产生上述结果,或许可以确定这将有助于弄清楚发生了什么,但我被卡住了。

任何建议,帮助,指针都会很棒,

关我试着复制它。

1 个答案:

答案 0 :(得分:0)

确保数据库中的字段足够长。我遇到了一个问题,即json编码的数据比字段长度长,并且被截断并导致它无效......有时只是查看编码数据,很难看到它在最后被截断。在你的php页面上回显它,并将它与最终在数据库中的字段中的数据进行比较...