读书人

求高手解答!MYSQL有关问题! 答案

发布时间: 2013-07-16 22:38:05 作者: rapoo

求高手解答!MYSQL问题! 在线等答案
我是菜菜,求高手帮忙解决一下:
问题提示:Microsoft OLE DB Provider for ODBC Drivers '80004005'
[MySQL][ODBC 3.51 Driver][mysqld-4.1.13yes-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INT=0 AND DEX=0 AND STR=0 AND CON=333 AND RELIVEWEAKTIME=0 AND GRACE=0 AND EXPLO' at line 1
\web\adminthirteen\user.asp, line 694

数据库是由ACCESS转换成MYSQL的.在更新其它MYSQL数据表都没有问题.唯独用同样的方法来更新这张表的时候出现如上错误

数据表结构:ACCID(INT自增型) NAME(varchar) POINTS(smallint) INT(INT) DEX(INT) CON(INT) STR(INT)如上报错字段都为INT型,长度为10非NULL?,无符号.其中还有部分表,这里就不帖出来了.

报错源码:表单内容我就不帖上来了,

引用
<%
set rs=nothing
end sub
sub save()
'保存资料
ACCID=trim(request("ACCID"))
if ACCID="" then
response.Write "<Script>alert('非法链接,您的IP已记录!');javascript:history.go(-1)</Script>"
Response.end
end if
sql = "select * from USER where ACCID='"&ACCID&"'"
set rs=Server.Createobject("ADODB.RecordSet")
rs.Open sql,conn2,1,3
if rs.bof and rs.eof then
response.Write "<Script>alert('操作失败!');javascript:history.go(-1)</Script>"
response.end
else
rs("COUNTRY")=(trim(request("COUNTRY")))
rs("TYPE")=(trim(request("TYPE")))
rs("LEVEL")=(trim(request("LEVEL")))
rs("MEN")=(trim(request("MEN")))
rs("DEX")=(trim(request("DEX")))
rs("POINTS") = trim(request("POINTS"))
rs("INT")=trim(request("INT"))
rs("STR")=trim(request("STR"))
rs("CON")=trim(request("CON")) 这颜色部分是的报错语句,我把这几条都删除,同样还报错.
rs("yzm")=now()
rs.update 这里是报错行.
rs.close
set rs = nothing
response.write "<script language='javascript'>"
response.write "alert('操作成功,资料已更新!');"
response.write "location.href='user.asp';"
response.write "</script>"
response.end
end if
end sub

sub userdel()
delnum=request("num")
if delnum="" or isnull(delnum) then
response.write "<script language='javascript'>"
response.write "alert('出错了,您什么也没有选择!');"
response.write "location.href='user.asp';"
response.write "</script>"
response.end
end if


conn2.execute("delete from CHARBASE where ACCID in ("&delnum&")")
response.write "<script language='javascript'>"
response.write "alert('操作成功,选定的已被删除!操作前请先备份!');"
response.write "location.href='user.asp';"
response.write "</script>"
response.end
conn.close
set conn=nothing
end sub
%>



在是ASP+ACCESS是一切正常.换成MYSQL就报错,关键更新在其它表一切正常.这就迷糊了,求高手解答! ASP+MYSQL
[解决办法]
"select * from USER where ACCID='"&ACCID&"'"
//==>最好改成这样,你的这个字段又不是字符串,要转换过浪费资源
"select * from USER where ACCID="&ACCID


看报错的信息,好像是asp没有自动给关键字的字段用[]括起,生成的sql语句出问题。

给表的字段起名字最好不要用保留字,INT是保留字,生成sql语句需要用[]括起,但是asp没有处理关键字,导致sql生成出错了

不行直接构造sql语句来插入,而不是使用游标来更新
[解决办法]
这样试试:
rs("`INT`")=trim(request("INT"))

[解决办法]
MySQL server version for the right syntax to use near 'INT=0 AND DEX=0
错误信息已经输得很清楚了,在套红的地方发现语法错误
INT 是 mysql 的保留字,如果作为字段名需要转义,写作 `INT` (`反撇号,Esc键下面的那个)


[解决办法]
有没有唯一约束或外键关联呀

读书人网 >ASP

热点推荐