优源网_做网站就是这么简单

dedecms模板标签中的sql及like模糊查询使用

  • 时间:2020-04-15 13:10 编辑: 来源: 阅读:220
  • 扫一扫,手机访问
摘要:在dedecms中我们常会用到{dede:sql},在sql使用变量经常也会用到。比如我们要在dede_archives表中搜索作者为指定变量的记录,如变量为$writer,那么语句如下: {dede:sql sql="SELECT * FROM dede_archives WHERE writer=~writ

在dedecms中我们常会用到{dede:sql},在sql使用变量经常也会用到。比如我们要在dede_archives表中搜索作者为指定变量的记录,如变量为$writer,那么语句如下:

 

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

 

这种是比较简单和常用的方式。但在使用过程中我发现,有时会遇到这样一种状况,即模糊搜索匹配的标题(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

 

2. 将32行中

function lib_sql(&$ctag,&$refObj)

修改为

function lib_likesql(&$ctag,&$refObj)

 

3. 将48行中

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

修改为

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

dedecms模板标签中的sql及like模糊查询

修改完成后调用标签改为

 

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


  • 全部评论(0)
上一篇:已是第一篇内容
下一篇:织梦DedeCms使用SQL语句调用数据库任意内容
资讯详情页最新发布上方横幅
最新发布的资讯信息
【技术中心|织梦技术】dedecms模板标签中的sql及like模糊查询使用(2020-04-15 13:10)
【技术中心|】dedecms新增联动类别后的使用方法(2019-04-18 10:32)
【技术中心|】织梦DEDE分类信息实现联动筛选(支持多条件多级选项)解决方案(2019-04-18 10:31)
【技术中心|】dedecms网站如何进行安全设置(2018-04-24 19:07)
【技术中心|】织梦dedecms源码安装方法(2018-04-24 19:05)
【技术中心|织梦技术】织梦DedeCms使用SQL语句调用数据库任意内容(2018-01-19 11:26)
【技术中心|织梦技术】织梦DedeCMS删除所有栏目或文章后,新建ID不从1开始的解决方法(2018-01-19 11:25)
【技术中心|织梦技术】织梦dedeCMS5.7列表页调用tag的方法(2018-01-19 11:25)
【技术中心|织梦技术】织梦dedeCMS如何将内容自动同步到新浪微博(2018-01-19 11:23)
【技术中心|常用软件】完美解决无法定位序数325于动态链接库的问题(2018-01-16 10:39)
联系客服
客服咨询 售前小郑 商务时光 联系客服
0531-58595456
手机版

扫一扫进手机版
返回顶部