Gil*_*kaz 12 php mysql serialization deserialization
我将数据保存在mysql数据库中.此数据是一个数组,内容是登录到我的系统的当前用户的不同数据.
我保存到数据库时这样做:
$data = addslashes(serialize($array));
Run Code Online (Sandbox Code Playgroud)
然后
"UPDATE or INSERT INTO TABLE SET ... data = '$data';"
Run Code Online (Sandbox Code Playgroud)
现在,由于插入或更新语句从我的php代码返回有效,因此数据被正确保存.
我的问题是,当我尝试取消序列化时,它返回false并在我的页面中显示通知.
我究竟做错了什么?
Boo*_*eus 23
我敢打赌你的mysql数据库中的字段不够大,无法保存所有字符.这就是为什么,当你取消序列化它时,你得到一个通知而没有任何回报.
尝试将字段增加到a MEDIUMBLOB或MEDIUMTEXT(最大长度为16,777,215)或LONGBLOB或LONGTEXT(最大长度为4,294,967,295),如下所示:
ALTER TABLE your_table MODIFY COLUMN column_name MEDIUMTEXT /* other properties*/;
Run Code Online (Sandbox Code Playgroud)
并尝试再次保存和读取您的数据.
现在,如果您的数据超过4,294,967,295(LONGBLOB或LONGTEXT),您可能应该检查保存的数据类型,也可以过滤或删除不需要的数据.
| 归档时间: |
|
| 查看次数: |
428 次 |
| 最近记录: |