嗨,大家好,我在這裏遇到緊急情況。我的代碼在FINE中工作了一段時間,突然有些事情出錯了,我不知道該怎麼辦!我通過序列化將數據庫中的對象存儲在數據庫中,然後在其上運行base64_encode。結果是一個編碼的序列化字符串,當我想檢索時,我只是解碼並解密它。Zend框架 - 不在數據庫中輸入值 - 垃圾進入
它一直工作正常,但突然間我不知道爲什麼 - 每當我嘗試運行插入的部分 - 它編碼的對象正確,但運行後的SQL查詢 - 值結束了在數據庫是一個截斷的混亂!!!!
它不是一個數據庫問題,如果我手動複製粘貼字段中的編碼字符串它複製並插入罰款。
我不知道怎麼回事 - 下面的代碼是我正在做的更新:
$personsTable = new ZFltData_Db_Table(array('name'=>'people'));
$where = $personsTable->getAdapter()->quoteInto('id = ?', $id);
$data['object'] = base64_encode(serialize($obj));
$personsTable->update($data, $where);
數據庫字段實際上是一個長文本。
編輯==== 對不起。那麼加密字符串看起來是這樣的:
YToyOntpOjA7YTozOntzOjg6ImNhdGVnb3J5IjtzOjU6InBob25lIjtzOjQ6InR5cGUiO3M6NDoiV29yayI7czo3OiJkZXRhaWxzIjtzOjEzOiIxMjMzIDQzNTQzNTQ1Ijt9aToxO2E6Mzp7czo4OiJjYXRlZ29yeSI7czo1OiJwaG9uZSI7czo0OiJ0eXBlIjtzOjQ6IkhvbWUiO3M6NzoiZGV0YWlscyI7czoxNzoiMTAwOTEyIDgwOTgxMjkwMTIiO319
它loks這樣,如果我手動複製粘貼到使用Navicat的資源管理器數據庫。
但是代碼時執行最終把剛剛在數據庫中的以下內容:
Tjs=
怪異的部分是,這是所有進入無論對象的內容編碼是什麼...對象實際上是一個關聯數組......這裏有什麼錯?它工作正常,直到...直到今天......
使用大寫和感嘆號不會讓你的答案更快 - 可能是相反的。 – 2010-02-20 11:41:13
你可以顯示序列化的字符串是什麼樣的,以及截斷混亂的(小)例子嗎? – 2010-02-20 11:42:02
@尼爾巴特沃斯 - 同意,編輯。對於OP - 我意識到你有緊迫感,但是你的問題將在幾天內得到解決,你的問題將會持續。我相應地編輯了你的問題。 – 2010-02-20 11:42:42