我们在用到dede:sql这个标签时候,查询语句中 LIKE '%~title~%',~title~这个like后会出现单引号,造成查询出错或者没有结果,下面就需要修改一下sql.lib.php这个文件,我们需要把自动为语句添加单引号去掉。
找到/include/taglib/sql.lib.php这个文件,找到:
要修改的代码: $sql = str_replace($conditions[0][$key],“‘’” addslashes($refObj->Fields[$value])“‘’”, $sql);
修改后:$sql = str_replace($conditions[0][$key], addslashes($refObj->Fields[$value]), $sql);
只需把引号去掉就ok 了!
最后使用的标签。下面是可以直接转成html的 dede:sql标签
{dede:sql 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:sql}