Php 从数据库检索时序列化数组中断
我正在mysql数据库中保存数据。此数据是一个数组,内容是登录到我的系统的当前用户的不同数据 我在保存到数据库时执行此操作:Php 从数据库检索时序列化数组中断,php,mysql,serialization,deserialization,Php,Mysql,Serialization,Deserialization,我正在mysql数据库中保存数据。此数据是一个数组,内容是登录到我的系统的当前用户的不同数据 我在保存到数据库时执行此操作: $data = addslashes(serialize($array)); 然后 现在,数据被正确保存,因为insert或update语句从我的php代码中返回了valid 我的问题是,当我尝试取消序列化它时,它返回false,并且在我的页面中显示一个通知 我做错了什么?我敢打赌mysql数据库中的字段不够大,无法保存所有字符。这就是为什么,当您取消序列化它时,您会收
$data = addslashes(serialize($array));
然后
现在,数据被正确保存,因为insert或update语句从我的php代码中返回了valid
我的问题是,当我尝试取消序列化它时,它返回false,并且在我的页面中显示一个通知
我做错了什么?我敢打赌mysql数据库中的字段不够大,无法保存所有字符。这就是为什么,当您取消序列化它时,您会收到一个通知,而没有任何回报 尝试将字段增加为
MEDIUMBLOB
或MEDIUMTEXT
(最大长度16777215)或LONGBLOB
或LONGTEXT
(最大长度4294967295),如下所示:
ALTER TABLE your_table MODIFY COLUMN column_name MEDIUMTEXT /* other properties*/;
并尝试再次保存和读取数据
现在,如果您的数据超过4294967295(即LONGBLOB或LONGTEXT),您可能应该检查您保存的数据类型,并可能过滤或删除不需要的数据。从表中获取数据后,是否在
取消序列化
函数之前删除斜杠
尝试在不使用
addslashes()
的情况下插入,并在将斜线添加到阵列之前添加斜线。是否可以发布用于取消序列化数据的代码以及所得到的错误。。
ALTER TABLE your_table MODIFY COLUMN column_name MEDIUMTEXT /* other properties*/;