日期:2014-05-17  浏览次数:20717 次

ACCESS数据库模糊查询结果很诡异
list表内数据
ID TITLE WORD URL
1 cgi教程 本地调试cgi index.asp#http://index.asp#
2 下载中心 聊天室,留言本 index.asp#http://index.asp#
0

站内数据库搜索部分asp源码

……
<% set rs=server.createobject("ADODB.Recordset") 
rs.open "select * from list where list.word like '%" & request.form("word") & "%'",MyCon,1,1
%> 
……
id="word"的文本框内输入cgi,即搜索表list中word包含关键字“cgi”的数据行

结果ID1和ID2的数据居然都被筛选了出来,ID2中的WORD列根本就没有cgi关键字啊?谁知道为什么

------解决方案--------------------
SQL code

--你可以用下面的在程序中重新执行试下,如果正确则说明你的request.form("word")有传值有问题的
--调试看下你的request.form("word")是什么
select * from list where list.word like '%cgi%'

------解决方案--------------------
探讨
引用:
引用:
SQL code

--你可以用下面的在程序中重新执行试下,如果正确则说明你的request.form("word")有传值有问题的
--调试看下你的request.form("word")是什么
select * from list where list.word like '%cgi%'


确实直接用select * from……

------解决方案--------------------
好吧,终极解决办法:



<% set rs=server.createobject("ADODB.Recordset")
rs.open "select * from list where list.word like '%" & request.form("word") & "%'",MyCon,1,1
%> 

这段修改为:

<%set rs=server.createobject("ADODB.Recordset")
If Request("word")<>"" Then
rs.open "select * from list where [word] like '%" & Request("word") & "%'",MyCon,1,1
Else
Response.write "word无值<BR>"
Response.End
End If%>