asp问题,请教高手(答对了在送20分)

来源:百度知道 编辑:UC知道 时间:2024/06/30 16:01:20
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] 语法错误 (操;作符丢失) 在查询表达式 'id=' 中。
/view.asp, 第 9 行

代码如下:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="conn.asp"-->
<!--#include file="include.asp"-->
<%
dim dbid,sql
dbid=FormatSQL(SafeRequest("id",1))
set rs=Server.CreateObject("ADODB.Recordset")
sql="select * from HN_news where id="&dbid
rs.open sql,conn,1,3
rs("hotclick")=rs("hotclick")+1
rs.update
demo=replace(rs("demo"),chr(10)+chr(13),"<br>")%>

本人是XP系统

数据表里的 id 字段是什么类型? 你这里获得的 dbid 又是什么类型,它们匹配了吗?

dbid应该是没有获得参数。你response.write看看有没有获得参数就知道了。

sql="select * from HN_news where id='"&dbid&"'"
原因可能是你的id字段是文本类型 需要''把值括起来

原因应该是dbid为空字符,SafeRequest函数变未判断id是否为空,ASP里面用isnumeric()函数决断空字符时也默认为True

可以sql="select * from HN_news where id="&dbid
下面加个response.write sql试试dbid是什么值,然后就可以找出原因

dbid没有获得参数,或者参数类型不匹配。用response.write显示看看有没有参数,同时检查id的类型是否匹配