Php 非序列化数据错误

Php 非序列化数据错误,php,serialization,pdo,Php,Serialization,Pdo,我找不到php为什么说我: Warning: Insufficient data for unserializing - 5468 required, 226 present 我正在尝试序列化一些对象和数据,然后取消序列化 也许它太大了 编辑: 由于代码太复杂,无法发布代码,因此我将解释我正在做的工作: 我正在序列化数据以将其保存到会话中。 我在会话中保存了一个篮子对象,其中包含一个产品(对象)列表。product类实现Serialize以避免保存PDO对象(序列化时返回错误),该对象位于某些

我找不到php为什么说我:

Warning: Insufficient data for unserializing - 5468 required, 226 present
我正在尝试序列化一些对象和数据,然后取消序列化

也许它太大了

编辑:

由于代码太复杂,无法发布代码,因此我将解释我正在做的工作:

我正在序列化数据以将其保存到会话中。 我在会话中保存了一个篮子对象,其中包含一个产品(对象)列表。product类实现Serialize以避免保存PDO对象(序列化时返回错误),该对象位于某些ORM功能的类中

以下是Serialize接口的实现方法:

public function serialize() {
    $serialized = \serialize(array(
        '_vars' => $this->getVars(), 
        '_returnNullIfEmpty' => $this->_returnNullIfTempty, 
        '_dataModel' => $this->getDataModel()
    ));

    return $serialized;
}

public function unserialize($data) {
    $unserialized = \unserialize($data);

    $this->setVars($unserialized['_vars']);
    $this->_returnNullIfEmpty = $unserialized['_returnNullIfEmpty'];
    $this->_dataModel = $unserialized['_dataModel'];
}
我注意到,我总是在第一条下出现这种错误:

Notice: unserialize() [function.unserialize]: Error at offset 10503 of 10968 bytes in ...

也许你给我们写了产生这种错误的代码^^你用什么来序列化?我还怀疑它是否太大,因为警告说没有足够的数据。我正在使用serialize()进行序列化。似乎是编码问题导致序列化失败。我找到了一个解决方案:序列化后使用rawurlencode,取消序列化前使用rawurldecode。在数据库中将字段设置为二进制,这样就不会遇到编码问题。