DEDEcms {dede:sql} LIKE模糊查詢問題 多出'號
時間: 2018-12-09 20:40
閱讀: 次
作者:素材無憂網(wǎng)
織夢DEDEcms {dede:sql} LIKE模糊查詢問題 多出'號 。
{dede:sql} 很好用 今天我用他來幫客戶做模糊調用數(shù)據(jù)功能。但是發(fā)現(xiàn)有問題 直接使用的話。
回提示sql錯誤。看了下sql 錯誤,
{dede:sql sql="select * from dede_archives where title like '%~title~%'"}
編譯的結果是select * from dede_archives where title like '%'$title'% 造成sql語句錯誤。
多出來了' 號。看了半天。
這里表情也不能用連接符來搞。
所以肯定是表情的問題
后來發(fā)現(xiàn)是sql語句的規(guī)則問題,所以就要修改{sql.lib.php} 的標簽。
首先,最好是重新建一個標簽,我起的標簽名是{likesql.lib.php};
然后把{sql.lib.php}中的內容全部復制到{likesql.lib.php}中。(記住要修改標簽名和方法名不然標簽運行出錯)
下面就需要修改一下{likesql.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: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}
標簽: