Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从数据库检索时序列化数组中断_Php_Mysql_Serialization_Deserialization - Fatal编程技术网

Php 从数据库检索时序列化数组中断

Php 从数据库检索时序列化数组中断,php,mysql,serialization,deserialization,Php,Mysql,Serialization,Deserialization,我正在mysql数据库中保存数据。此数据是一个数组,内容是登录到我的系统的当前用户的不同数据 我在保存到数据库时执行此操作: $data = addslashes(serialize($array)); 然后 现在,数据被正确保存,因为insert或update语句从我的php代码中返回了valid 我的问题是,当我尝试取消序列化它时,它返回false,并且在我的页面中显示一个通知 我做错了什么?我敢打赌mysql数据库中的字段不够大,无法保存所有字符。这就是为什么,当您取消序列化它时,您会收

我正在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*/;