dedecms新建内容模型“把数据保存到数据库附加表时出错‘xxx’出错”错误的原因分析和解决方案(转)

把数据保存到数据库附加表 `bc_addonarticle17` 时出错,请把相关信息提交给DedeCms官方。INSERT INTO `bc_addonarticle17`(aid,typeid,redirecturl,templet,userip,body, ) Values( 11 , 11 , , , 127 0 0 1, )You have an error in your

今天在使用dedecms之梦系统进行建站的时候,使用新创建的自定义内容模型来添加文章的时候出现了错误,错误描述如下:
系统返回错误:
把数据保存到数据库附加表 `bc_addonarticle17` 时出错,请把相关信息提交给DedeCms官方。You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘require,process) Values(‘11‘,‘11‘,‘‘,‘‘,‘127.0.0.1‘,‘asdfdsaf‘ ,‘‘ ,‘asd‘ ,‘‘ ‘ at line 1;
首先知道这是一个数据通过表单提交给php程序进行处理保存到数据库的整个过程当中在保存的数据库这一环节出现了错误。于是找到了此表单提交到的php程序文件“dede/article_add.php”,找到处理自定义模型中生产的附加表内容添加的程序段:

//保存到附加表
$cts = $dsql->GetOne("SELECT addtable FROM `#@__channeltype` WHERE id=‘$channelid‘ ");
$addtable = trim($cts[‘addtable‘]);
if(empty($addtable))
{
$dsql->ExecuteNoneQuery("DELETE FROM `#@__archives` WHERE id=‘$arcID‘");
$dsql->ExecuteNoneQuery("DELETE FROM `#@__arctiny` WHERE id=‘$arcID‘");
ShowMsg("没找到当前模型[{$channelid}]的主表信息,无法完成操作!。","javascript:;");
exit();
}
$useip = GetIP();
$templet = empty($templet) ? ‘‘ : $templet;
$query = "INSERT INTO `{$addtable}`(aid,typeid,redirecturl,templet,userip,body{$inadd_f}) Values(‘$arcID‘,‘$typeid‘,‘$redirecturl‘,‘$templet‘,‘$useip‘,‘$body‘{$inadd_v})";
if(!$dsql->ExecuteNoneQuery($query))
{
$gerr = $dsql->GetError();
$dsql->ExecuteNoneQuery("Delete From `#@__archives` where id=‘$arcID‘");
$dsql->ExecuteNoneQuery("Delete From `#@__arctiny` where id=‘$arcID‘");
ShowMsg("把数据保存到数据库附加表 `{$addtable}` 时出错,请把相关信息提交给DedeCms官方。".$query.str_replace(‘"‘,‘‘,$gerr),"javascript:;");
exit();
}

大约在203行左右,笔者首先加入输出其sql语句的程序语句来查看是否是生产的sql插入语句有错误,具体是在返回提示信息的地方字符串中链接一个$query变量:
ShowMsg("把数据保存到数据库附加表 `{$addtable}` 时出错,请把相关信息提交给DedeCms官方。".$query.$query.str_replace(‘"‘,‘‘,$gerr),"javascript:;");
在此添加一个文章查看返回的提示中的sql语句如下:

把数据保存到数据库附加表 `bc_addonarticle17` 时出错,请把相关信息提交给DedeCms官方。INSERT INTO `bc_addonarticle17`(aid,typeid,redirecturl,templet,userip,body,sectitle,introduce,require,process) Values(‘11‘,‘11‘,‘‘,‘‘,‘127.0.0.1‘,‘asdfdsaf‘ ,‘‘ ,‘asd‘ ,‘‘ ,‘‘ )You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘require,process) Values(‘11‘,‘11‘,‘‘,‘‘,‘127.0.0.1‘,‘asdfdsaf‘ ,‘‘ ,‘asd‘ ,‘‘ ‘ at line 1

检查此sql语句发现并没有语句上的错误,然后打开数据库查看对应的数据库表也没用错误

由此知道不是程序上的问题,而应该是自己添加的字段时候上的一些问题,例如添加字段时的类型属性设置是否合理,字段命名是否合理(是否是系统保留字段或者已存在而出现冲突等);
由此思路逐日者有检查了一边内容模型选项中各字段设定是否有不合理的地方(核心—内容模型管理—修改—字段管理),发现并无问题后考虑到require或process字段是报错点,那么很有能是两个字段命名上有问题,于是笔者重新创建了一个更改了相应两个字段名字的新模型,使用这个新模型,文章正常保存!
从上知道,是因为我们创建字段的字段名有问题(是否是系统保留字段或者已存在而出现冲突等)而导致虽然sql语句语法正常但仍然无法正常将文章保存。
另外,网络上的一些类似问题反映来看,如果在创建模型时候只是通过更改添加“模型字段配置(文本模式)”一栏来增加字段而没有通过点击“增加字段”按钮来创建字段,也会出现此类问题,因为这样子是虚有其表,并没有正确的创建相应的数据库表中的字段。

时间: 2024-07-30 04:29:22

dedecms新建内容模型“把数据保存到数据库附加表时出错‘xxx’出错”错误的原因分析和解决方案(转)的相关文章

把数据保存到数据库附加表 `dede_addonarticle` 时出错,请把相关信息提交给DedeCms

把数据保存到数据库附加表 `dede_addonarticle` 时出错,请把相关信息提交给DedeCms官方.Duplicate entry '2′ for key 'PRIMARY' 你的主键是不可重复的,现在重复插入值为3的主键了.可以去掉主键唯一,或是设成自增加.就不会出现这种情况了. 具体操作: 进入后台,"系统" - "系统设置" - "SQL命令行工具" 运行SQL命令行: alter table dede_addonarticle

把数据保存到数据库附加表 `dede_addonarticle` 时出错,请把相关信息提交给DedeCms官方。Duplicate entry

把数据保存到数据库附加表 `dede_addonarticle` 时出错,请把相关信息提交给DedeCms官方.Duplicate entry ’3′ for key ‘PRIMARY’ 你的主键是不可重复的,现在重复插入值为3的主键了.可以去掉主键唯一,或是设成自增加.就不会出现这种情况了. 具体操作:进入后台,“系统” - “系统设置” - “SQL命令行工具” 运行SQL命令行: alter table dede_addonarticle drop primary key 运行上面的代码就

WordPress插件制作教程(四): 将数据保存到数据库

上一篇讲解了添加菜单的方法,这一篇为大家讲解如何将数据保存到数据库中,并且显示在页面上,不会因提交表单时刷新页面输入框中内容消失.要实现这一功能我们需要借助WordPress函数来实现,下面就来讲解具体的实现方法,先把代码贴出来.还是根据之前的那个插件样例,大家可以直接在上面做修改. // 在WordPress后台评论处添加一个子菜单 add_action('admin_menu', 'comments_submenu'); function comments_submenu() { add_c

将json对象数据保存到数据库对应的表中

问题描述  如何将json对象数据保存到数据库对应的表中. 分析问题   json数据内容不固定,json数据格式是固定的(name:value),数据库表结构是固定的,在json数据格式 与 数据库表结构之间建立一套对应规则,写一套逻辑解析这套对应规则. 1.json对象对应的数据库表需要确定. 2.json对象的节点对应数据库表的列需要确定. 3.json对象的value类型需要确定下来,才能对value值做相应的操作. 4.数据库表的主键列比较特殊,一般是自增长列,需要确定. 5.数据库记

富文本域数据保存到数据库

前言:<富文本域数据保存到数据库>,这个标题感觉还不够清晰明了.只好再赘述一遍了,前端使用了bootstrap的wysiwyg富文本组件,然后就是不知道怎么保存图片,图片数据提交到数据库后,在前端无法显示. 今天看到jquery.base64.js,隐隐约约知道了解决方案. 经常不经意间就发现文章被扣到各式各样的网站上面,甚是可恶! 那么人生何处不爬虫,爬虫请标http://blog.csdn.net/qing_gee 见贤思齐焉,见不贤而内自省也! 普通做法 function html_en

oracle从各个表取得数据保存到另一个表

从各个表中取得数据保存另一个表中: CREATE VIEW PARAMETER_view ASWITH tall AS ( SELECT p.PI_NO,--产品序列号 p.SERIALNO,--产品编号 p.PI_NAME,--产品名称 p. PI_START_DATE,--产品起息日 p.PI_END_DATE,--产品期日期 p.PI_CUSTOMER_YIELD/100 PI_CUSTOMER_YIELD, --产品收益率 a.AI_NO, --资产序列号 a.CAS_ASSETS_NA

POI读取Excel数据保存到数据库,并反馈给用户处理信息

今天遇到这么一个需求,将课程信息以Excel的形式导入数据库,并且课程编号再数据库中不能重复,也就是我们需要先读取Excel提取信息之后保存到数据库,并将处理的信息反馈给用户.于是想到了POI读取文件提取数据,也可以利用Jxl读取Excel提取数据. 最终效果: 对于下面的Excel,总共20条数据.18条在数据库已经存在,最后两条是在同一个excel文件中重复在数据库不存在. 反馈结果:(也就是最后两个X6511只保存了一条) 思路: 1.先将Excel文件上传到本地,保存到本地磁盘 2.读取

WebMagic爬虫框架及javaEE SSH框架将数据保存到数据库(二)

关于一些基本内容可查看上一篇博客:http://blog.csdn.net/u013082989/article/details/51176073 一.首先看一下爬虫的内容: (1)学科类型.课程.课程对应章节.课程对应参考教材(主要是要将课程章节对应到上一级爬取的课程上,还有就是课程教材的爬取比较麻烦,下面会讲到) 课程章节: 课程教材 教材内容 二.实体类的设计: (1)课程类.课程对应章节类(一对多),课程对应教材类(一对多),关于hibernate映射文件就不说明了. 三.爬取课程及对应

winfrom_导入Excel文件加载数据到datagridview并将数据保存到数据库

1.效果图: Excel表: winfrom界面: 主要先 选择Excel文件--->显示文件路径--->选择是那一个Excel表--->加载显示在下面的datagridview--->导入到数据库保存 2.点击 '选择Excel' 按钮事件: 1 private void btn_excel_Click(object sender, EventArgs e) 2 { 3 try 4 { 5 //获取Excel文件路径和名称   6 OpenFileDialog odXls = n