織夢(mèng)dedecms {dede:sql} LIKE模糊查詢問(wèn)題 多出'號(hào)
時(shí)間: 2018-04-27 11:45
閱讀: 次
作者:素材無(wú)憂網(wǎng)
織夢(mèng)DEDEcms {dede:sql} LIKE模糊查詢問(wèn)題 多出'號(hào) 。
{dede:sql} 很好用 今天我用他來(lái)幫客戶做模糊調(diào)用數(shù)據(jù)功能。但是發(fā)現(xiàn)有問(wèn)題 直接使用的話。
回提示sql錯(cuò)誤。看了下sql 錯(cuò)誤,
{dede:sql sql="select * from dede_archives where title like '%~title~%'"}
編譯的結(jié)果是select * from dede_archives where title like '%'$title'% 造成sql語(yǔ)句錯(cuò)誤。
多出來(lái)了' 號(hào)??戳税胩臁?nbsp;
這里表情也不能用連接符來(lái)搞。
所以肯定是表情的問(wèn)題
后來(lái)發(fā)現(xiàn)是sql語(yǔ)句的規(guī)則問(wèn)題,所以就要修改{sql.lib.php} 的標(biāo)簽。
首先,最好是重新建一個(gè)標(biāo)簽,我起的標(biāo)簽名是{likesql.lib.php};
然后把{sql.lib.php}中的內(nèi)容全部復(fù)制到{likesql.lib.php}中。(記住要修改標(biāo)簽名和方法名不然標(biāo)簽運(yùn)行出錯(cuò))
下面就需要修改一下{likesql.lib.php}的代碼了,我們需要把自動(dòng)為語(yǔ)句添加單引號(hào)去掉。
要修改的代碼: $sql = str_replace($conditions[0][$key],“‘’” addslashes($refObj->Fields[$value])“‘’”, $sql);
修改后:$sql = str_replace($conditions[0][$key], addslashes($refObj->Fields[$value]), $sql);
只需把引號(hào)去掉就ok 了!
最后使用的表情。下面是可以直接轉(zhuǎn)成html的 dede:sql標(biāo)簽
{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}
標(biāo)簽: