POST TIME:2020-04-12 21:57
今天我因為一些需要修改了dede網站數據庫的表前綴,并將數據庫配置信息文件中表前綴同樣改了,然后在編輯發布的文檔時出現了"讀取附加信息出錯!"的消息,同添加文檔也同樣出錯,出現了"把數據保存到數據庫附加表`dede_addonarticle`時出錯,請把相關信息提交給DedeCms官方。"的信息,此時重新生成html文件時原來的文檔也不見了。
于是我用代碼編輯器搜索了一下"讀取附加信息出錯!"所在的文件,結果發現這段信息是在admin/article_edit.php中,而它出現的條件是數組$addRow不存在,即上面sql語句"SELECT*FROM`$addtable`WHEREaid='$aid'"返回結果為0,同過這sql語句可以看出當表名$addtable出錯時,或文檔aid不存在時就會出現問題,而$addtable=$cInfos['addtable'],$cInfos又是通過"SELECT*FROM`dede_channeltype`WHEREid='".$arcRow['channel']."'"得來,我們就可以看出表名$addtable是存在表dede_channeltype中的addtable字段里的(其中dede_是表前綴),而不是用類似于dede_channeltype的表前綴加表名的方式獲得的,結果我去數據庫的dede_channeltype表中一看,發現里面是內容模型的信息,而里面存的表名的前綴還是原來的,于是我將里面的表名改正,再去后臺看,錯誤就沒了。
總結:出現這個錯誤就是因為數據庫表名與dede_channeltype中存的表名對不上,能操作數據庫的人可以去數據庫修改,不會操作數據庫的人可以在核心--頻道模型--內容模型管理--將模型‘附加表’改正確即可。
附:我在查看dede_channeltype表時發現字段maintable中也存著表名,能改數據庫的人最好把里面的表前綴也改過來,雖然說只要改掉addtable字段就能解決錯 了誤。
最簡單方法是使用系統里的系統錯誤修復,一般都能解決
上一篇:織夢最重要的三個安全設置