我正在序列化存储在数据库中的数据:
一个:10:{S:4: “姓名”;一个:2:{S:4: “类型”; S:8: “排除”; S:5: “值”; S:0:” “;} S:8:” 关键词 “;一个:2:{S:4:” 类型 “; S:8:” 排除 “; S:5:” 值 “; S:0:”“;} S: 11: “描述”;一个:2:{S:4: “类型”; S:8: “排除”; S:5: “值”; S:0: “”;} S:3: “SKU” ;一个:2:{S:4: “类型”; S:8: “排除”; S:5: “值”; S:0: “”;} S:12: “制造商”;一个:2: {S:4: “类型”; S:8: “排除”; S:5: “值”; S:0: “”;} S:11: “PROGRAMNAME”;一个:2:{S:4: “类型”; S:8: “排除”; S:5: “值”; S:0: “”;} S:12: “数据提供器”;一个:2:{S:4: “类型”; S 8: “排除”; S:5: “值”; S:0: “”;} S:11: “LASTUPDATED”;一个:1:{S:5: “值”; N;} S:8 “货币”;一个:1:{S:5: “值”; S:0: “”;} S:5: “价格”;一个:1:{S:5: “值”; S:3 : “100”;}}
当我反序列化时,它会返回空数据但是当我回显数据并从浏览器中复制o / p并静态放置以进行反序列化时,它可以正常工作。
有谁可以告诉我可能是什么问题?
答案 0 :(得分:5)
您上面提供的内容确实有效。
在数据库中保存序列化数据时,请将列的长度设置为非常高的值。
如果您认为序列化数据不会超过1000个字符,那么就加一半就可以了。你应该没问题。
您可能希望将VARCHAR(1500)
用于您认为长度约为1000个字符的可序列化数据。
我几乎可以保证您的问题是因为数据库正在存储您的序列化数据并将其剪切以便它可以适合您的列。