更新数据库archives表时出错 的解决方法
我以前用的是dedecms5.5,后来升级到了5.6,同时将原来5.5中数据库的数据还原到了5.6的数据库中,结果出现了如下的错误提示:
更新数据库archives表时出错
具体解决方法请向下看:
今天升级了我的电大在线网站,因为懒得一步一步地升级,所以把网站数据备份好后直接重新上传了DEDE5.6程序,然后还原,还好,一切顺利。
谁知录入几篇文章和编辑文章后点确定,出现了错误:更新数据库archives表时出错
文章居然修改不了,郁闷,什么原因呢?于是进百度,进DEDE论坛,费了九牛二虎之力终于解决了。
下面完整地说一下DEDE5.5转到5.6 后录入文章和编辑文章出现:更新数据库archives表时出错的解决方法:
对比“V5.5 和V5.6 的 article_add.php 和 article_edit.php 这两个文件的代码”:
article_add.php 这个文件Dedecms 5.5的(大约186行开始)
//保存到主表
$query = "INSERT INTO `dede_archives`(id,typeid,typeid2,sortrank,flag,ismake,channel,arcrank,click,money,title,shorttitle,
color,writer,source,litpic,pubdate,senddate,mid,notpost,description,keywords,filename,dutyadmin)
VALUES ('$arcID','$typeid','$typeid2','$sortrank','$flag','$ismake','$channelid','$arcrank','$click','$money',
'$title','$shorttitle','$color','$writer','$source','$litpic','$pubdate','$senddate',
'$adminid','$notpost','$description','$keywords','$filename','$adminid');";
Dedecms 5.6的(大约192行开始)
//保存到主表
$query = "INSERT INTO `dede_archives`(id,typeid,typeid2,sortrank,flag,ismake,channel,arcrank,click,money,title,shorttitle,
color,writer,source,litpic,pubdate,senddate,mid,notpost,description,keywords,filename,dutyadmin,weight)
VALUES ('$arcID','$typeid','$typeid2','$sortrank','$flag','$ismake','$channelid','$arcrank','$click','$money',
'$title','$shorttitle','$color','$writer','$source','$litpic','$pubdate','$senddate',
'$adminid','$notpost','$description','$keywords','$filename','$adminid','$weight');";
注意红色部分,DEDE5.6 在 archives 这个表里多了一个名为(weight)的字段。
找到原因办法也就找到了,在网站后台执行SQL语句创建这个字段就解决问题了:注意选择执行多行命令。
ALTER TABLE `dede_archives` ADD `weight` int(10) not null AFTER `mtype`;
用以上的方法已经成功解决问题---cql