关于搜索:紧急求助!在线给分

netak47 2005-05-24 04:08:54
这个是查询语句:
sql1="select * from news where (content like '%"&trim(Input)&"%' or title like '%"&trim(Input)&"%') and cateid=0 order by addtime asc"

现在假设INPUT里包含了[]这个字符,为什么就查不出了呢 ?
可能是把[]中的内容当成字段名了吧,SQL中用[]表示字段名,
但能够有什么好的办法可以解决这个问题吗?

...全文
100 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
netak47 2005-05-24
  • 打赏
  • 举报
回复
问题得以解决,感谢各位
我是这么解决的:
Input=request("FileNum")
Input=replace(Input,"[","%' or fileno like '%")
sql1="select * from news where fileno like '%"&trim(Input)&"%' order by addtime asc"
如查询: 国科发政字[2003]416
Input的内容是:“国科发政字[2003]416 ”
SQL的执行语句是:
select * from news where fileno like '%国科发政字%' or fileno like '%2003]416%' order by addtime asc
netak47 2005-05-24
  • 打赏
  • 举报
回复
我到是这么想的,把INPUT中“[”前所有的字符都替换成“”,这样就可以查出来了
netak47 2005-05-24
  • 打赏
  • 举报
回复
select * from news where (content like '%国科发政字\[2003\]416%' {escape '\'} or title like '%国科发政字\[2003\]416%'{escape '\'{escape '\'} and cateid=0 order by addtime asc

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'

ODBC 驱动程序不支持所需的属性。
jimmy0021 2005-05-24
  • 打赏
  • 举报
回复
利用转义字符,就像javascript中,使用 \" 表示 "

如下:

Input=replace(Input,"[","\[")
Input=replace(Input,"]","\]")
sql1="select * from news where (content like '%"&trim(Input)&"%' {escape '\'} or title like '%"&trim(Input)&"%' {escape '\'}) and cateid=0 order by addtime asc"

{escape '\'} 申明"\"是转义字符.
lyexcel 2005-05-24
  • 打赏
  • 举报
回复
利用转义符,比如:
select * from LY_DEPARTMENT where LY_COMMENT LIKE '%/[说明/]' ESCAPE '/'

ESCAPE '/' 为自己定义的转义符
netak47 2005-05-24
  • 打赏
  • 举报
回复
可以用 input=replace(input,"[","")
但是还是查询不出来,title 字段里有[]字符
tyhn168 2005-05-24
  • 打赏
  • 举报
回复
如果将:你那上面的Input替换成:
replace(replace(replace(replace(Input,"'","‘"),"<","<"),">",">")," "," ")
看看可以不??
同时请楼住看看我的帖子,也是搜索问题:
http://community.csdn.net/Expert/topic/4032/4032061.xml?temp=.1213648
x123jing 2005-05-24
  • 打赏
  • 举报
回复
可以用replace 来替换掉输入到数据库中的[]。然后进行查询。
因为在sql中[]是保留关键字符。和'一样的。
leo963258 2005-05-24
  • 打赏
  • 举报
回复
不会的
一般新闻发布系统的UBB语法都用[]做安检的啊
jackycxg 2005-05-24
  • 打赏
  • 举报
回复
帮你顶下吧
[]可能是sql里默认的数据表名字吧。。
要不就换过试试呀

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧