关于asp查询的问题,80分

mchowie 2009-08-29 02:08:32
表article是存储文章的表,其中字段claz标识文章分类

<%
exec="select * from article where claz="&request.querystring("claz")
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
%>

然后我浏览
http://127.0.0.1/admin/admin_title.asp?claz=1,可以正常的浏览.
但是,由于文章还有更细的分类,于是我改成

<%
exec="select * from article where claz="&request.querystring("claz") and claz1=="&request.querystring("claz1")
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
%>

浏览页面
http://127.0.0.1/admin/admin_title.asp?claz=1&claz1=2
却提示可耻的出错鸟:
Microsoft VBScript 编译器错误 (0x800A0401)
语句未结束
...全文
78 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
凡夫与俗子 2009-08-29
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 citybird 的回复:]
MSSQL可以,Access不支持Case

另直接用Request.querystring("")这种拼接方法小心被注入攻击,用replace(Request.querystring(""),"'","''")替代可以防注入
[/Quote]
顶。
三楼の郎 2009-08-29
  • 打赏
  • 举报
回复
MSSQL可以,Access不支持Case

另直接用Request.querystring("")这种拼接方法小心被注入攻击,用replace(Request.querystring(""),"'","''")替代可以防注入
mchowie 2009-08-29
  • 打赏
  • 举报
回复
恩,谢谢大家的帮助哦,
看能否追加一个小问题:
exec="select (case when claz1=2 and claz=2 then '信息中心' when claz1=2 and claz=3 then '招聘信息' else '其他' end) as bt * from article where claz="&request.querystring("claz")&" and claz1="&request.querystring("claz1")&""

我用这样的复杂一点的sql语句不知道行不
xb520hh 2009-08-29
  • 打赏
  • 举报
回复
改成这样
<%
exec="select * from article where claz="&request.querystring("claz")&" and claz1="&request.querystring("claz1")
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
%>

拼接字符串错了
weqp 2009-08-29
  • 打赏
  • 举报
回复
如果你的字段是数字没问题
exec="select * from article where claz="&request.querystring("claz")&" and claz1="&request.querystring("claz1")&""
如果字段是文本,用的是数字查询则
exec="select * from article where claz='"&request.querystring("claz")&"' and claz1='"&request.querystring("claz1")&"'"
gxq323 2009-08-29
  • 打赏
  • 举报
回复
是拼字符串错了,好好研究如何拼字符串,拼2次就会了
gxq323 2009-08-29
  • 打赏
  • 举报
回复
exec="select * from article where claz="&request.querystring("claz")&" and claz1="&request.querystring("claz1")
mchowie 2009-08-29
  • 打赏
  • 举报
回复
哦,说明下,上面的代码多出现了两个等于号,其实,我的代码只有一个等于号,刚才多打了一个

28,409

社区成员

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

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