0

我正在序列化存储在数据库中的数据:

a:10:{s:4:"name";a:2:{s:4:"type";s:8:"excluded";s:5:"value";s:0:"";} s:8:"keywords";a:2:{s:4:"type";s:8:"excluded";s:5:"value";s:0:"";}s:11:"描述";a:2:{s:4:"类型";s:8:"排除";s:5:"值";s:0:"";}s:3:"sku";a: 2:{s:4:"类型";s:8:"排除";s:5:"值";s:0:"";}s:12:"制造商";a:2:{s: 4:"type";s:8:"excluded";s:5:"value";s:0:"";}s:11:"programname";a:2:{s:4:"type" ;s:8:"排除";s:5:"值";s:0:"";}s:12:"dataprovider";a:2:{s:4:"type";s:8: "排除";s:5:"值";s:0:"";}s:11:"lastupdated";a:1:{s:5:"价值";N;}s:8:"货币";a:1:{s:5:"价值";s:0:"";}s:5:"价格";a :1:{s:5:"值";s:3:"100";}}

当我反序列化时,它返回空数据,但是当我回显数据并从浏览器复制 o/p 并将其静态放置以进行反序列化时,它工作正常。

谁能告诉我可能是什么问题?

4

1 回答 1

5

您在上面提供的内容确实有效并且应该有效。

在数据库中保存序列化数据时,将列的长度设置为非常高的量。

如果您认为序列化数据不会超过 1000 个字符,那么在其上添加一半就可以了。

您可能希望VARCHAR(1500)用于您认为大约 1000 个字符长的可序列化数据。

我几乎可以保证您的问题是因为数据库正在存储您的序列化数据并对其进行剪辑,以便它适合您的列。

于 2013-03-25T14:13:30.053 回答