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