2 回答

TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊
我通過執(zhí)行以下操作找到了解決方案:
$toDatabse = base64_encode(serialize($data)); // Save to database
$fromDatabase = unserialize(base64_decode($data)); //Getting Save Format
而@astax 的解決方案在指出問題方面也是正確的。但是通過使用 base64_encode,它確保安全地序列化對(duì)象。這可以防止數(shù)據(jù)被破壞,因?yàn)?base64 將數(shù)據(jù)轉(zhuǎn)換為任何排序規(guī)則都可以采用的 ASCII。

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
根據(jù)PHP 文檔,如果字符串無(wú)效則unserialize
返回。false
這就是您的情況 -$custArr
不是Customer
類的實(shí)例,因此是錯(cuò)誤。
如果您error_reporting(E_ALL);
在 unserialize 之前添加,您將看到錯(cuò)誤消息,因?yàn)?unserialize 會(huì)在出現(xiàn)錯(cuò)誤時(shí)發(fā)出通知。序列化后的字符串確實(shí)有問題。
我的猜測(cè)是對(duì)象的值中有一些非 ASCII 符號(hào),并且由于字符集不匹配而在保存和從數(shù)據(jù)庫(kù)讀取后丟失了它們。如果您使用 MySQL,此頁(yè)面可能會(huì)有所幫助 - https://dev.mysql.com/doc/refman/8.0/en/charset.html
- 2 回答
- 0 關(guān)注
- 110 瀏覽
添加回答
舉報(bào)