今天我因?yàn)橐恍┬枰薷牧薲ede網(wǎng)站數(shù)據(jù)庫(kù)的表前綴,并將數(shù)據(jù)庫(kù)配置信息文件中表前綴同樣改了,然后在編輯發(fā)布的文檔時(shí)出現(xiàn)了"讀取附加信息出錯(cuò)!"的消息,同添加文檔也同樣出錯(cuò),出現(xiàn)了"把數(shù)據(jù)保存到數(shù)據(jù)庫(kù)附加表 `dede_addonarticle` 時(shí)出錯(cuò),請(qǐng)把相關(guān)信息提交給DedeCms官方。"的信息,此時(shí)重新生成html文件時(shí)原來(lái)的文檔也不見(jiàn)了。
于是我用代碼編輯器搜索了一下"讀取附加信息出錯(cuò)!"所在的文件,結(jié)果發(fā)現(xiàn)這段信息是在admin/article_edit.php中,而它出現(xiàn)的條件是數(shù)組$addRow不存在, 即上面sql語(yǔ)句"SELECT * FROM `$addtable` WHERE aid='$aid'"返回結(jié)果為0,同過(guò)這sql語(yǔ)句可以看出當(dāng)表名 $addtable 出錯(cuò)時(shí),或文檔aid不存在時(shí)就會(huì)出現(xiàn)問(wèn)題,而$addtable = $cInfos['addtable'], $cInfos又是通過(guò)"SELECT * FROM `dede_channeltype` WHERE id='".$arcRow['channel']."'"得來(lái),我們就可以看出表名$addtable是存在表dede_channeltype中的addtable字段里的(其中dede_是表前綴),而不是用類似于dede_channeltype的表前綴加表名的方式獲得的,結(jié)果我去數(shù)據(jù)庫(kù)的dede_channeltype表中一看,發(fā)現(xiàn)里面是內(nèi)容模型的信息,而里面存的表名的前綴還是原來(lái)的,于是我將里面的表名改正,再去后臺(tái)看,錯(cuò)誤就沒(méi)了。
總結(jié):出現(xiàn)這個(gè)錯(cuò)誤就是因?yàn)閿?shù)據(jù)庫(kù)表名與dede_channeltype中存的表名對(duì)不上,能操作數(shù)據(jù)庫(kù)的人可以去數(shù)據(jù)庫(kù)修改,不會(huì)操作數(shù)據(jù)庫(kù)的人可以在核心--頻道模型--內(nèi)容模型管理--將模型‘附加表’改正確即可。
附:我在查看dede_channeltype表時(shí)發(fā)現(xiàn)字段maintable中也存著表名,能改數(shù)據(jù)庫(kù)的人最好把里面的表前綴也改過(guò)來(lái),雖然說(shuō)只要改掉addtable字段就能解決錯(cuò)誤。
下面是dedecms論壇的方法:
今天檢查了下網(wǎng)站的舊文章,發(fā)現(xiàn)不少是“讀取附加信息出錯(cuò)!”的,瀏覽內(nèi)容時(shí)就僅有描述段,正文內(nèi)容全部不見(jiàn)了。
到phpmyadmin中打開(kāi)dede_addonarticle表搜索出現(xiàn)問(wèn)題的文章的ID,結(jié)果找不到,于是嘗試插入內(nèi)容,aid字段就輸入出現(xiàn)問(wèn)題的文章的ID。
果然,后臺(tái)可以編輯了,不過(guò)正文內(nèi)容是找不回來(lái)的了,唯有重新寫(xiě)上內(nèi)容,或者看看百度快照吧~~~
這問(wèn)題存在很久我都沒(méi)發(fā)現(xiàn),百度更新了不知道多少次,快照也找不回內(nèi)容,悲哀啊~~要一篇一篇去找。
還有這個(gè)問(wèn)題不知道是怎么發(fā)生的,如何預(yù)防~~各位高手出來(lái)說(shuō)下嘛。
更多信息請(qǐng)查看IT技術(shù)專欄