PHP:json_encode与序列化存储在MySQL数据库中?
我在表的一个字段中存储了一些“非结构化”数据(键控数组),我目前正在使用serialize()/unserialize()从数组来回“转换”到字符串。
但是,在取消序列化数据时,我时不时会遇到错误。我相信这些错误是由于我正在序列化的数组内的字符串中的Unicode数据而发生的,尽管有些带有Unicode数据的记录工作正常。(数据库字段为 UTF-8)
我想知道使用json_encode而不是序列化是否会有所作为/使其更具弹性。这对我来说不是微不足道的测试,因为在我的开发环境中,一切都运行良好,但在生产中,时不时地(大约1%的记录)我会收到一个错误。
顺便说一句,我知道我正在为这个问题找到一个实际的解释,只是盲目地尝试一些东西,我有点希望我能摆脱它,而不必花太多时间在上面。
您是否认为使用json_encode而不是序列化会使它更能适应“序列化错误”?数据格式对我来说看起来更“宽容”...
更新:我得到的实际错误是:
Notice: unserialize(): Error at offset 401 of 569 bytes in C:\blah.php on line 20
谢谢!丹尼尔