O.K.所以我很聰明 - 我已經建立了一個庫,可以保留一大堆WP主題,這些WP主題都是根據我的需要設置的,所以當我推出新網站時,我可以在幾分鐘內創建新博客。PHP序列化數據庫條目搞砸了我所有
作爲新域的持有者,我在sql文件中擁有舊域的所有內容都用[token]替換。
一切工作正常,直到我做了一個與兒童主題,顯然序列化數據之前輸入到數據庫中的一個點。結束了這樣的東西:
Theme','a:8:{s:12:\"header_image\";s:92:\"http://[token]wp-content/uploads/2011/05/494-Caring-for-fruit-trees-PLR.jpg\";s:16:\"background_image
所以我挖成系列化,它turnss的是S:92位例如是該值的字符數。由於我正在更改[標記],它會更改並中斷。
到目前爲止,我對sql文件做了所有更改,除了使用sql文件填充數據庫之外,沒有編輯數據庫 - 但是我很遺憾如何處理串行數據陣列。
任何想法?
這就是我認爲我必須做的事情,這使得它非常複雜,因爲有很多行。顯然,每個職位一個。 – 2011-05-05 21:09:12
您可以嘗試獲取序列化的總長度,替換該令牌,然後重新獲取長度。從新長度減去舊的長度以獲得總變化,然後將適當的整數修改爲整數值加上變化。這只是容易出錯。最簡單的方法是準備MySQL語句,然後將數組設置爲搜索參數,然後循環執行每個查詢,並根據需要進行替換。 – shmeeps 2011-05-05 21:14:56
您應該反序列化,更改數據並將其序列化。你必須忍受這樣一個事實,即你需要通讀print_r()輸出來查看在更改值之前數組是如何構建的。順便說一句。它的反序列化(),而不是unserailize():-) – 2011-05-05 21:32:49