从老版本的织梦Dedecms升级到Dedecms v5.7后,发现以前广告管理中添加的项目全都没有了,但是广告还能正常显示。另外使用广告添加功能,系统也提示添加成功,但是在广告管理中就是看不到这个新添加的广告。
经分析发现,原来老版本建立的广告还都存储在数据库中(仍可以正常使用)。但是新添加的并没有添加成功(数据库中没有值),在服务器上可以看到以下错误代码:
Error page: /dede/ad_main.php
Error infos: Unknown column 'ad.clsid' in 'on clause'
Error sql: SELECT COUNT(*) AS dd FROM dede\_myad
ad LEFT JOIN dede\_arctype
tp on tp.id=ad.typeid LEFT JOIN dede\_myadtype
ap on ap.id=ad.clsid WHERE 1=1 LIMIT 0,1;
原来在升级到Dedecms V5.7以后,广告管理的表dede_myad需要添加列 clsid 以满足广告管理插件日益强大的功能。
官方给出的解决办法是:
登入dedecms网站的后台,点击 系统设置 -> SQL命令行工具 -> 执行SQL命令 -> 单行命令(支持简单查询),在文本框输入以下SQL语句:
ALTER TABLE dede\_myad
ADD COLUMN clsid
int(10) NOT NULL DEFAULT 0 AFTER aid
;
点击确定运行后,广告管理插件即可正常运行,原来添加的广告也能正常管理了。