PHP unserialize sigue arrojando el mismo error más de 100 veces

Tengo una gran matriz de 2d que serializo y base64_encode y la lancé a una base de datos. En una página diferente saco la matriz y cuando base64_decode la matriz serializada puedo repetirla y definitivamente parece válida.

Sin embargo, si trato de unserialize(base64_decode($serializedArray)) solo arroja el mismo error hasta el punto de casi bloquear Firefox.

El error es:

Advertencia: unserialize() [function.unserialize]: El nodo ya no existe en /var/www/dev/wc_paul/inc/analyzerTester.php en la línea 24

Incluiría todo el conjunto serializado que echo de menos, pero la última vez que lo intenté en este formulario, se colgó mi Firefox.

¿Alguien tiene alguna idea de por qué esto podría estar pasando?

¿Estás seguro de que estás simplemente serializando una matriz, y no un objeto (por ejemplo, DOMNode?) Al igual que los recursos, no todas las clases estarán contentas con ser deserializadas. Como ejemplo del DOM (que me sugiere su error con el que está trabajando), cada nodo tiene una referencia al parentNode, y si el parentNode no existe en el momento en que un nodo se está deserializando, no puede recrear esa referencia y surgen problemas.

Sugeriría guardar el árbol dom como XML en la base de datos y volver a cargarlo más tarde.

Asegúrese de que el campo de la base de datos sea lo suficientemente grande como para contener la matriz serializada. Los datos serializados son muy ineficientes en espacio en PHP, y muchos DB (como MySQL) truncarán en silencio los valores de campo que son demasiado largos.

¿Qué tipo de elementos hay en tu matriz? serialize / unserialize no funciona con objetos PHP incorporados, y esa suele ser la causa de ese error.

Además, en función de su comentario, este no es su problema, pero para ahorrar espacio en su base de datos no base64 codifique los datos, simplemente escapéntelos. es decir, para mysql use mysql_real_escape_string.

Asegúrese de no serializar los recursos, no se pueden serializar.

Resources@php.net