Ошибка несериализации смещения - PullRequest
0 голосов
/ 15 октября 2011

-

У меня есть сериализованный массив, отправленный другой функции в моем приложении. Затем я пытаюсь десериализовать данные и представить их в другом месте.

Функция unserialize работает правильно для меньшего объема данных, например, для нескольких сотен записей. Когда дело касается 3000+ записей, у меня появляется следующее сообщение об ошибке:

Notice (8): unserialize() [function.unserialize]: Error at offset 23048 of 3499833 bytes [APP/controllers/jobs_controller.php, line 475]

Warning (2): Cannot modify header information - headers already sent by (output started at /home/v/s/vsdev/web/public_html/cake/libs/debugger.php:683) [APP/views/helpers/xls.php, line 19]

Warning (2): Cannot modify header information - headers already sent by (output started at /home/v/s/vsdev/web/public_html/cake/libs/debugger.php:683) [APP/views/helpers/xls.php, line 20]

Warning (2): Cannot modify header information - headers already sent by (output started at /home/v/s/vsdev/web/public_html/cake/libs/debugger.php:683) [APP/views/helpers/xls.php, line 21]

Warning (2): Cannot modify header information - headers already sent by (output started at /home/v/s/vsdev/web/public_html/cake/libs/debugger.php:683) [APP/views/helpers/xls.php, line 22]

Warning (2): Cannot modify header information - headers already sent by (output started at /home/v/s/vsdev/web/public_html/cake/libs/debugger.php:683) [APP/views/helpers/xls.php, line 23]

Warning (2): Cannot modify header information - headers already sent by (output started at /home/v/s/vsdev/web/public_html/cake/libs/debugger.php:683) [APP/views/helpers/xls.php, line 24]

Warning (2): Cannot modify header information - headers already sent by (output started at /home/v/s/vsdev/web/public_html/cake/libs/debugger.php:683) [APP/views/helpers/xls.php, line 25]

Link Job Job Ref Company Link Profession Specialism Sub Specialism Zone Country Region City Seniority Date Published Date Archived Days Active Email Enabled Created Modified

Warning (2): Invalid argument supplied for foreach() [APP/views/jobs/search_export.ctp, line 37]

Что не так?

1 Ответ

1 голос
/ 16 октября 2011

Данные в записи, которая выдает ошибку, почти наверняка повреждены. Это не должно иметь ничего общего с количеством запрашиваемых вами записей, только с одной или несколькими конкретными записями, которые содержат недопустимые сериализированные данные. Попробуйте выяснить, какая запись приводит к ошибке, и проверьте ее данные.

Примечание: какой тип столбца вы используете для хранения сериализованных данных? Я обнаружил, что при использовании TEXT в MySQL сериализованные данные могут быть необратимо повреждены операциями, выполняемыми MySQL над текстом, что приводит к ошибкам unserialize (). Используйте BLOB для столбцов сериализованных данных, чтобы данные оставались неизменными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...