欢迎来到六久阁织梦模板网!
织梦dede:sql like模糊查询当前%~title~% 多出’号的问题修复方法

织梦dede:sql like模糊查询当前%~title~% 多出’号的问题修复方法

浏览次数: 0

作者: 六久阁织梦模板网

信息来源: 六久阁

更新日期: 2019-08-13

文章简介

在dedecms中我们常会用到{dede:sql},在sql使用变量经常也会用到。比如我们要在dede_archives表中查询某个关键词与当前标题做匹配的时候,如变量为title,那么语句如下: {dede:sql sql=SELECT * FROM dede_archives WHERE tag=~title~} 这种是比较简单和常

  • 正文开始
  • 热门文章

在dedecms中我们常会用到{dede:sql},在sql使用变量经常也会用到。比如我们要在dede_archives表中查询某个关键词与当前标题做匹配的时候,如变量为title,那么语句如下:

{dede:sql sql="SELECT * FROM dede_archives WHERE tag=~title~"}


这种是比较简单和常用的方式。但在使用过程中我发现,有时会遇到这样一种状况,即模糊搜索匹配的标题(sql使用like和%)。

按照上面来说应该这样写:

{dede:sql sql="SELECT * FROM  dede_archives WHERE  title like '%~title~%' "}

但是这样报错了,编译的结果是select * from dede_archives where title like '%'$title'% 造成sql语句错误。多出来了' 号。后来发现是sql语句的规则问题,所以就要修改{sql.lib.php} 的标签。


以下为修改方法:

1. 复制include/taglib/sql.lib.php文件并重命名为likesql.lib.php  ( likesql 这个文件名字可以自己取)

2. 将32行中

function lib_sql(&$ctag,&$refObj)

修改为

function lib_likesql(&$ctag,&$refObj)  (lib_likesql 这个方法名字也可以自己取)


3. 将48行中

$sql = str_replace($conditions[0][$key], "'".addslashes($refObj->Fields[$value])."'", $sql);

修改为:

$sql = str_replace($conditions[0][$key],addslashes($refObj->Fields[$value]), $sql);

织梦dede:sql like模糊查询当前%~title~% 多出’号的问题修复方法


修正 dedecms dede:sql like模糊查询当前%~title~% 多出'号的问题

修改完成后把该文件上传到 include/taglib/ 目录下面即可。

最后的调用标签改为:

{dede:likesql  sql="SELECT * FROM dede_archives WHERE keywords LIKE '%~title~%' order by  click desc limit 10"}

<li>

       <a href='[field:id runphp='yes'] $id=@me;@me='';$url=GetOneArchive($id);@me=$url['arcurl'];[/field:id]' title="[field:title/]" target="_blank">[field:title function=cn_substr(@me,40,0)/]</a>     

      </li>

</a>

{/dede:likesql}

织梦二次开发QQ群

本站客服QQ号:862782808(点击左边QQ号交流),群号(383578617) DedeCMS织梦教程QQ群 如果您有任何织梦问题,请把问题发到群里,阁主将为您写解决教程!

转载请注明: 织梦模板 » 织梦dede:sql like模糊查询当前%~title~% 多出’号的问题修复方法

  • 织梦dedecms手机站m目录下不生成index.html实现动态更新
    阅读
    用 织梦建站 会手机站首页不更新的苦恼,每次 PC 更新,要去删除 m 目录下的 index.html ,手机站首页才会更新,这样很麻烦,通过以下修改,让手机站首页是动态的,不生成 index.html , PC 端更新后,手机端首页自动更新。 把 \m\index.php 里面的 $row[sho...
  • 织梦Fatal error: Call to undefined function make_hash() in /dede/sys_info.php on line 201的解决方法
    阅读
    织梦系统安装好后,进入后台,出现Fatal error: Call to undefined function make_hash() in /dede/sys_info.php on line 201 一般出现这个问题是因为升级网站引起的。我们可以直接把错误提示这段代码删除或者屏蔽就行了。 打开/dede/sys_info.php,找到201...
  • 织梦Dedecms 5.7 火车头采集免登陆发布接口适配PHP7.X插件
    阅读
    最近有粉丝说,之前用的火车头发布文章时,用免登陆接口在PHP7.0环境中显示空白,于是今天抽空更新了一下插件(话说,DedeCms早期版本无法在PHP7.X运行,用最新版的!),那么接下来的代码就是插件发布模块无须变更,只需要变更接口插件就可以了 ?php/*/////...
  • 织梦dedecms系统多城市分站功能开发思路
    阅读
    当前很多人用织梦dedecms系统建站,多城市分站对地方性长尾关键词和全国市场的推广有着很大的帮助,今天和大家分享下如何实现织梦dedecms系统多城市分站功能。 方法/步骤 织梦dede城市分站有三种方法: 第一种是建立N多个模板,有多少个城市建立多少个模板,...
  • 织梦dedecms提交自定义表单后发送到指定邮箱
    阅读
    网上很多教程都是用 dedecms 自带的邮件库发送邮件,而且是写死要发送的字段内容,今天我们用 phpmailer 来给站长发送自定义表单提交的数据到指定邮箱上 (QQ 邮箱, 163 邮箱都可以 ) ,不写死任何东西,有什么字段就提交发送什么字段。 操作之前,我们要先...
  • dedecms织梦ckplayer视频播放器插件详细安装教程
    阅读
    织梦 ckplayer 视频播放器插件安装步骤: 第一步、下载安装插件。下载地址:点击此处 将下载下来的压缩包中的相应编码的模块文件解压出来再上传到织梦程序的 data/module/ 文件夹内或者直接在后台模块管理菜单里面选择上传新模块安装即可。如下图: 1.1 )上...
  • 织梦5.7火车头免登陆文章发布模块采集后自动更新织梦整站
    阅读
    织梦5.7火车头免登陆文章发布模块采集后自动更新织梦整站详细步骤: 1、下载文档后,把DedeCMS免登陆接口文章发布模块DedeCMS 5.7 免登陆接口文章发布模块.wpm复制到火车头采集规则文件夹Module下; 2、选择您网站对应的接口文件.如您网站是gbk编码,请选择 g...
  • 织梦采集侠破解版自动采集触发教程24小时触发自动审核自动更新
    阅读
    最新采集侠V2.9.2破解版,可以在网站进行全自动数据采集,采集侠破解版可以帮助用户快速提升自己网站的Seo排名。 织梦采集侠是一款基于dedecms的一套根据关键词自动采集,无须编写复杂的采集规则,自动伪原创,自动发布内容的绿色插件。简单配置好后能实现24...
  • 织梦dedecms网站添加打赏功能
    阅读
    有时我们看到别人家的织梦dedecms网站有打赏功能,是不是羡慕嫉妒恨呢?今天我来给大家讲讲织梦网站怎么添加支付宝、微信打赏功能。 二、首先登陆畅言后台(没有畅言账号的首先注册账号) 三、进入后台,找到实验室--打赏 四、设置配置信息,保存。 五、复制...
  • 织梦火车头采集免登陆接口采集文章后自动更新栏目、首页、文章页,实现自动化采集
    阅读
    最近用织梦dedecms程序采集文章时候,发现每次采集都要去后台更新一下文章、栏目、上下篇以及首页,操作起来真心麻烦,后面在网上收集了一些代码以及经过自己调试,发现居然可以自动更新文章页以及栏目、首页。真心爽,这样子就能稳稳的挂机采集了哈。这是免...
收藏此文 打赏本站

如本文对您有帮助,就请六久阁织梦模板网抽根烟吧!

  • 支付宝打赏
    支付宝扫描打赏
    微信打赏
    微信扫描打赏
织梦怎么批量删除内链链接保留文本
« 上一篇 2019年08月13日
织梦批量创建栏目时自定义模型隶属栏目无法选择和创建解决方法
下一篇 » 2019年08月13日

精彩评论

有问题在这里提问,阁主会为你解决!
  • 全部评论(0
    还没有评论,快来抢沙发吧!
推荐精品模板更多