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

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

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

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

$chrow = $dsql->getone($cs);

 if(!is_array($chrow)) {
  return $rearr;
 }
 else {
  if(empty($chrow['maintable'])) $chrow['maintable'] = '#@__archives';
 }

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

 $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表,下面是我写的一段简单导入代码

<?
include("cn.php");
$sql ="select id,typeid,typeid2,sortrank,senddate,mid from d_archives  order by id desc";
$query = mysql教程_query( $sql );
$i=$j=0;
$t =time();
while(  $rs = mysql_fetch_array( $query ) )
{
 $e = "select id from d_arctiny where id=".$rs['id'];
 $ers = mysql_query( $e ) or die( mysql_error().$e);
 if(! mysql_num_rows( $ers ) )
 {
  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());
  $i++;
 }
 else
 {
  $j++;
 }
 
}
echo '共导入数据'.$i.'条!,存在记录'.$j.'条,共有记录'.($i+$j).'条';
?>

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

本站原创文章 http://www.111cn.net  转载必须注明来源,否则必究

时间: 2024-10-13 09:56:54

dedecms 更新附加表 `_addonsoft` 时出错的相关文章

dedecms数据保存到数据库附加表 xxx_addonarticle 时出错

由于安装使用DEDE默认的数据库表名等很容易被黑客黑.最近公司的一个站用DEDE就遇到.为此做了安全防护以后.想顺便更改默认的数据库表名: 假设定原来的为:xxx_前缀   更改以后的为:sq_xxx_ 更改完成以后提交数据显示: 把数据保存到数据库附加表 `xxx_addonarticle` 时出错,请把相关信息提交给DedeCms官方.Table 'testdata.xxx_addonarticle' doesn't exist 解决办法: 找到数据库表:sq_xxx_channeltype

苹果ios10无法安装更新怎么办 安装ios10时出错原因以及解决方法

安装ios10时出错解决方法:   ios10正式版更新提示无法安装什么原因?   随着苹果ios10系统的推出,有很多用户的设备已经被淘汰了,尽管还能继续在低版本的状态下使用,不过又有部分用户升级失败了,并且一直显示更新失败,出现这样的问题通是手机得保持充足的内存.网络通畅且手机指纹功能良好的状况才可以升级的,更新失败的用户快去检查一下吧.    ios10正式版升级失败解决办法:   如果你更新失败了,点击打开链接下载最新固件,重新下载固件,然后通过电脑更新吧!   1.先下载iOS10正式

SQL Server 2008附加数据库时出错的解决方法

马上就要开始做机房收费系统了,想要了解系统的功能就得先了解前辈的数据库.在得到原数据库charge_sys.mdf和charge_sys.ldf 后,迫不及待地想要附加到SQL Server里. 不过问题来了,在附加数据库首要数据文件charge_sys.mdf 时,出现了"附加数据库出时出错.有关详细信息,请单击"消息"列中的超链接"的错误.如下图: 点击"消息"中的超链接之后,错误提示: 网上查了一下,出现这种错误(错误5120),很可能是因

对象-VS2008 更新 JScript IntelliSense 时出错

问题描述 VS2008 更新 JScript IntelliSense 时出错 VS2008 更新 JScript IntelliSense 时出错 undefined 为NULL或不是对象 代码: <br> var player = cyberplayer("playercontainer").setup({<br> width: 854,<br> height: 480,<br> stretching: "uniform&q

《Web测试囧事》——2.2 页面字段依赖导致表单提交时出错

2.2 页面字段依赖导致表单提交时出错 小蔡最近在测试中碰到一个有意思的问题,就是在提交表单时,如果不按表单设定好的由上到下的顺序一个个填写表单内容,那么在提交时就会出现提交失败的错误. 小蔡感觉到很奇怪,表单顺序的填写居然也会影响到功能?那就随着小蔡看看这个问题是怎么发现的,以及是什么原因引起的吧. 小蔡在测试用户注册账户页面时发现,注册页面内容很多而且表单很长,所以她就使用鼠标滚动,没想到滚动得过快导致有些选项并没有填写/选择,最后等到她提交表单时才发现这一点.她只好重新滚动到漏填/选的字段

数据库-createtable创建表时出错

问题描述 createtable创建表时出错 strCommand.Format("CREATE TABLE file_info (NAME TEXT,TYPE TEXT,TIME TEXT,PATH TEXT)"); 这句显示字段定义语法错误 该怎么改 解决方案 用的什么数据库,是否支持TEXT类型,另外,name time是否是关键字,需要转义. 解决方案二: 看上去可能是字段名称跟关键字冲突了.换个名字. 解决方案三: 这样试试: strCommand.Format("

Sqlserver2005附加数据库时出错提示操作系统错误5120的解决办法

问题描述 Sqlserver2005附加数据库时出错提示操作系统错误5120的解决办法 用的是2005数据库,数据库是从另一台机子上考来的 在附加时 报如下错: (http://img.ask.csdn.net/upload/201506/01/1433143611_783759.png) 解决方案 你把文件bright.mdf复制到d:data试试看.保证这个文件夹有足够的权限.

编程-VFP 更新表数据时自动把系统时间写入表中指定一列插入 如何实现自动写入数据

问题描述 VFP 更新表数据时自动把系统时间写入表中指定一列插入 如何实现自动写入数据 VFP编程 现有 成绩 用户 两表 成绩表 三列 成绩 修改时间 用户 用户表 两列 用户名 密码 其中插入与更新成绩后,自动提取系统时间 写入 "修改时间列"( 包含年月日的时间 ) 并且根据系统登录的用户,将用户名写入成绩表 用户列 修改时间以及 用户 这两列只能通过程序自动写入 不可以人为写入 现有两表 教师 用户 如何实现插入教师表中教师号一列的数据后 自动将数据插入到用户表中 用户名列 用

java更新mysql表内容出错

问题描述 java更新mysql表内容出错 sql语句: public static void deleteUser(String loginName){ String sql = "update user set flag=3 where loginName= "+ loginName ; DBUtil.getInstance().delete(sql); } 错误信息: java.sql.SQLException: Data truncation: Truncated incorr