|
主题:让你的CMS支持任意复杂的SQL语句 [收藏主题] | 转到: |
科讯的SQL标签功能很强大,但是有个很大的缺点,就是无法支持复杂的SQL查询,原因就出在/admin/include/labelfunctionadd.asp页面的ClearParam函数上,这个函数科讯的本意是用来去除含有top与自定义参数的内容,并且在最后有句:ClearParam=Split(ClearParam,"where")(0),这句话的本意是去掉where条件语句,本意是好的,只是去得太草率,以至于以下的SQL语句无法执行: select count(*) as counts,Ks_class.id as Tid,ks_class.foldername from ks_class,(select ks_gq.GQID,ks_class.TS from ks_gq,ks_class 这个语句的功能是用来统计一个供求信息栏目下有几条信息用的,要求返回的值有三个: 数量、类别ID、类别名 这样的SQL语句在经过Split(ClearParam,"where")(0)后再被SqlValid函数调就完全错了,所以得改一下ClearParam函数 修改方法如下: 新增一个函数,用来执行正则替换: Function GetReplaceStr(Pattern,ReplaceStr,Checkstr) 然后在ClearParam函数的末尾,把ClearParam=Split(ClearParam,"where")(0)给注释掉,添加以下三行: SqlStr=GetReplaceStr("(and)(.+?)(\{\$P.+?\)\})","",SqlStr) 保存即可 修改有一定风险,请慎重! |
|
支持(0) | 反对(0) 顶端 底部 |
<上一主题 | 下一主题 > |