当前位置:首页 > CMS教程 > DeDecms > 列表

dedecms 更新附加表 `_addonsoft` 时出错

发布:smiling 来源: PHP粉丝网  添加日期:2015-04-03 16:12:39 浏览: 评论:0 

今天我的网站无意间出现dedecms 更新附加表 `_addonsoft` 时出错这个提示,出现情况是进入下载页面下载软件时提示“”,后台编辑软件时是详细的内容说明调用不出来,其它没问题,经过一个多小时的分析,终于找出一方法,不过这是我的总结,不一定大家都一样.

第一步,我找到plus/download.php文件,找到$arcrow = getonearchive($aid);函数,因为反应没有值所以就会提示没有找到页面.

找到include/common.func.php里面的,getonearchive发现,他有一句.

  1. $chrow = $dsql->getone($cs); 
  2.  if(!is_array($chrow)) { 
  3.   return $rearr
  4.  } //开源软件:phpfensi.com 
  5.  else { 
  6.   if(emptyempty($chrow['maintable'])) $chrow['maintable'] = '#@__archives'
  7.  } 

我把经过分析是查找这条sql

  1. $cs ="select arc.*,ch.maintable,ch.addtable,ch.issystem from `#@__arctiny` arc left join `#@__channeltype` ch on ch.id=arc.channel where arc.id='$aid' "

发现是`#@__arctiny表,有总是,通过phpmyadmin查询发现,这个表的记录比其它二个主表少了3000条记录,原因就在这里了,经过分析我们可以把3g_archives表的相关字段所有可以再次导入到`#@__arctiny表,下面是我写的一段简单导入代码:

  1. <?php 
  2. include("cn.php"); 
  3. $sql ="select id,typeid,typeid2,sortrank,senddate,mid from d_archives  order by id desc"
  4. $query = mysql_query( $sql ); 
  5. $i=$j=0; 
  6. $t =time(); 
  7. while(  $rs = mysql_fetch_array( $query ) ) 
  8.  $e = "select id from d_arctiny where id=".$rs['id']; 
  9.  $ers = mysql_query( $e ) or die( mysql_error().$e); 
  10.  if(! mysql_num_rows( $ers ) ) 
  11.  { 
  12.   mysql_query("insert into d_arctiny(id,typeid,typeid2,arcrank,channel,senddate,sortrank,mid)values('".$rs['id']."','".$rs['typeid']."','".$rs['typeid2']."','0','3','".$rs['sortrank']."','".$rs['senddate']."','".$rs['mid']."')  ") or die( mysql_error()); 
  13.   $i++; 
  14.  } 
  15.  else 
  16.  { 
  17.   $j++; 
  18.  } 
  19.  
  20. echo '共导入数据'.$i.'条!,存在记录'.$j.'条,共有记录'.($i+$j).'条'
  21. ?> 

这样我在服务器上执行了一次,再去查看刚出的dedecms 更新附加表 `_addonsoft` 时出错,编辑文档出错的问题全部搞定.

Tags: dedecms附加表 _addonsoft

分享到: