将字符串与数据库匹配
我为我的网站编码简单404 seo。我有一点困惑。我需要代码来查看类别表,看看它是否与字符串匹配。如果是,那么它应该打印类别的名称,如果不是,那么它应该显示“页面未找到”消息。我不明白我哪里错在这里...将字符串与数据库匹配
> > <%
> > WebsiteQueryString = Request.QueryString
> > SplitQueryString = split(WebsiteQueryString, "/")
> >
> > SQL = "SELECT C.CATEGORYID,
> > C.CATEGORYNAME" SQL = SQL & " FROM
> > CATEGORIES C" Set objCategory =
> > objConn.Execute(SQL)
> >
> > If objCategory("CATEGORYID") =
> > SplitQueryString(4) Then %>
> >
> > <%=objCategory("CATEGORYNAME")%>
> >
> > <% Else %>
> >
>
> enter code here`page not found.
>
> >
> >
> > <% End If %>
一些提示:
1 /使用CINT(或CSTR)
If objCategory("CATEGORYID") = SplitQueryString(4) Then
如果SplitQueryString(4)
是一个数字,可以尝试在cInt(
两个操作数之前在
If cInt(objCategory("CATEGORYID")) = cInt(SplitQueryString(4)) Then
如果遇到需要做这些的情况,需要进行比较。
2 /试穿屏幕的值写你比较之前(你确定你用正确的元素比较?)
Response.Write("[" & objCategory("CATEGORYID" & "]")
Response.Write("[" & SplitQueryString(4) & "]")
我总是把括号他们周围,以查看是否空串存在
3 /试验ISNULL()为ISNULL为您objCategory("CATEGORYID")
尝试测试(),因为我觉得FIEL d的值是零,如果不存在记录
4 /请务必使用正确的字段名称(CATEGORYID) - 检查拼写
OK,我对经典的ASP有点生疏,但似乎你可能想要更多的东西是这样的:
<%
WebsiteQueryString = Request.QueryString
SplitQueryString = split(WebsiteQueryString, "/")
' I'm assuming SplitQueryString(4) is a number, as is CATEGORYID
SQL = "SELECT CATEGORYNAME FROM CATEGORIES WHERE CATEGORYID = " & SplitQueryString(4)
Set objCategory = objConn.Execute(SQL)
If objCategory("CATEGORYNAME") <> "" Then
Response.Write(objCategory("CATEGORYNAME"))
Else %>
enter code here`page not found.
<% End If %>
对此的另一个主要评论。采取这种方法会使您严重受到SQL注入攻击的影响。我会建议一个存储过程。
什么是存储过程? – 2010-01-19 03:41:39
它基本上是你传递参数的部分编译的SQL语句。你可以在这里看到更多:http://en.wikipedia.org/wiki/Stored_procedure – CSharper 2010-01-29 18:52:40
为什么你有'输入代码中间here'耳光? – 2010-01-19 03:12:34