2012-03-21 47 views
0

我的WordPress側邊欄小工具,當我改變了從數據庫中替換下wp_options表都用新的上一個鏈接的Twitter的鏈接消失更新鏈接無效。我並沒有改變上述鏈接等,但仍是小部件獲得從正面消失了,我做錯了什麼,我怎麼從它無法在數據庫爲好。WordPress的側邊欄小工具大幹快上的MySQL數據庫

回答

1

我不能肯定,但我懷疑你的更新導致數據庫中的某些無效的PHP。爲了將複雜結構作爲字符串存儲在數據庫中,該值在存儲之前被序列化。

例如,以下

<?php 
    $example = array("a string", "another string"); 
    echo serialize($example); 
?> 

輸出

a:2:{i:0;s:8:"a string";i:1;s:14:"another string";} 

哪個類似於許多wp_options值。相關部分是「一串」之前的8。這是字符串的長度。如果您在不更改該值的情況下將字符串更改爲其他長度,PHP(和WordPress)將無法反序列化該值。

例如,

<?php 
    print_r(unserialize('a:2:{i:0;s:8:"a different string";i:1;s:14:"another string";}')); 
?> 

結果

Notice: unserialize(): Error at offset 22 of 61 bytes in D:\tmp\so.php on line 11 

我懷疑的WordPress貴更新後打的錯誤。

解決您的問題,那麼,我會通過反向運行了更新開始,所以系列化PHP是有效的。然後更新管理屏幕中的值。

如果通過管理界面更新是不可能的,寫一個小PHP程序走(現在是正確的)序列化值,反序列化它,改變相應的值,並重新序列化。使用序列化結果作爲wp_options表中的新值。

+0

THX爲妙explanation..i我肯定這將是無法正確序列化的正確格式數據的結果......會不會改變偏移量和做一次就會讓你知道:) THX很多! – swapnesh 2012-03-23 04:20:23

相關問題