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 yourjavascript

今天在使用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”,找处处理自定义模型中生产的附加表内容添加的程序段:
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();
}java

 

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

 

把数据保存到数据库附加表 `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 1sql

 

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

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

相关文章
相关标签/搜索