我保存了我的数组:
$saveModel = base64_encode(serialize($classifier));
mysqli_query($db, "INSERT INTO model_latih(isi) VALUES('$saveModel')")or die("Error : ".mysqli_error($db));
然后我尝试使用以下代码从数据库中获取它:
$q = mysqli_query($db, "SELECT * FROM model_latih")or die("Error: ".mysqli_error($db));
$fetch = mysqli_fetch_assoc($q);
$row = $fetch['isi'];
$data = unserialize(base64_decode($row));
但它给出了这个错误:
PHP注意:unserialize():错误偏移量1309为49151字节
我已将serialize
和unserialize
结果的长度进行了比较。
这两个字符串是不同的。 serialize
长度为255164,unserialize
为65535.似乎没有完全加载。
谁知道是什么让它与众不同?
我希望有人可以帮我解决这个问题。谢谢。
答案 0 :(得分:0)
我有同样的问题。 我将数据库中列的类型从BLOB更改为MEDIUMBLOB。
我发现:
BLOB can hold 65535 bytes (64 KB)
MEDIUMBLOB can hold 16777215 bytes (16 MB)
LONGBLOB can hold 4294967295 bytes (4 GB)