2011-09-02 146 views
0

我收到以下錯誤: -PHP反序列化錯誤

消息:反序列化()function.unserialize:錯誤偏移量65535個字節

65517的反序列化是否有一個最大尺寸是多少?

這是我的PHP內,這個行:

$array = unserialize($emails); 

// this is the output of $emails (not all of it as it is huge) 
string(65535) "a:12134:{i:0;s:29:"[email protected] ";i:1;s:31:"[email protected] " 
+0

我不這麼認爲。您需要提供更多關於您的數據來自哪裏的信息 –

+4

不,它沒有。但是從這個錯誤消息猜測你的序列化字符串的來源有一個大小限制(TEXT列被限制爲64K)。 – mario

+1

不,他們沒有(也沒有從我[發現] [1]中得到),他們可以序列化巨大的字符串)。儘管它們在記憶上有限,但這似乎不是你的問題。你可以發佈你嘗試序列化/反序列化的字符串嗎? [1]:http://www.php.net/manual/en/function.serialize.php#79339 – Lars

回答

11

的數據庫字段(大概),你要存儲您的序列化數據成有大小限制是由該字符串的長度超過了 - 基本上,您的數據已損壞。

+0

字段結構被設置爲'文本'doh! 您是否建議我使用BLOB來替代此字段? – Zabs

+1

哪個btw,除了太短你的情況,也是不正確的另一個原因。您可能遇到字符編碼的問題 - 序列化數據應存儲在二進制字段中。 – Narf

+1

@Gav每個電子郵件地址**應**存儲在**分開的**字段 - 這是唯一適當的解決方案! –