当前您在:首页 > 网站建设 > 织梦dede:sql like模糊查询当前%~title~% 多出,号的问题

织梦dede:sql like模糊查询当前%~title~% 多出,号的问题

来源:村仔SEO博客 热度:

在织梦中我们常会用到{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} 的标签。

以下为修改方法:

将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~% 多出,号的问题

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

最后的调用标签改为:{dede:sql sql=""  }

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

以上就是织梦dede:sql like模糊查询当前%~title~% 多出,号的问题的全部内容,希望对大家的学习有所帮助,也希望大家多多支持村仔SEO。

1.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;
2.网友投稿可能会经我们编辑修改或补充。
转载请注明出处:http://www.cunzaiseo.com/wangzhanjianshe/15.html

上一篇:织梦调用相关文章likearticle附加自定义字段 下一篇:DW如何清除代码中多余的空行?
说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!
相关文章
热门文章