【问题标题】:Syntax error in INSERT INTO statement classic ASP [duplicate]INSERT INTO 语句经典 ASP 中的语法错误 [重复]
【发布时间】:2016-08-16 20:21:15
【问题描述】:

我遇到了一个错误,不确定是什么原因造成的。我有响应。写出 SQL 并将其复制粘贴到访问中,它运行得非常好,所以我怀疑它只是 SQL 语句之外的东西。

实际上,当我将值插入不同的数据库时,我复制粘贴了我的代码,只是更改了数据库和我插入的值。有什么想法吗?

set conn = server.createobject("ADODB.Connection")
conn.open "provider=Microsoft.Jet.OLEDB.4.0; data source=" &server.mappath("/test_framework/rbxDB.mdb")

user = request.form("user")
pass = request.form("password")
sql = "INSERT INTO users (userID, password, Type) VALUES ('"&user&"', '"&pass&"', 'S');"

response.write(sql)
set rs=conn.execute(sql)

conn.close
set conn = nothing

是的,我知道这段代码存在很多问题,但是它们并没有给我一个错误,我只是想修复这个错误“语法”错误。

什么是response.writed是:

INSERT INTO users (userID, password, Type) 
VALUES ('asdf', 'q123eqeds', 'S');

【问题讨论】:

  • @Andre 同意它的语言独立问题来自 SQL Server 而不是正在使用的编程/脚本语言,并且是一种非常常见的语言。
  • 是的,绝对是重复的。抱歉没有意识到。

标签: sql ms-access asp-classic


【解决方案1】:

Typepasswordpassword 是访问数据库引擎保留字)是 Reserve Word,因此需要使用 [] 之类的方式进行转义

INSERT INTO users (userID, [password], [Type]) VALUES ('asdf', 'q123eqeds', 'S');

【讨论】:

  • 你忘记了[密码] ...
  • @Gustav,不,密码不是保留字。请参阅答案中的链接或此support.office.com/en-us/article/…
  • 嗯,我和很多人都发现它是。请参阅@Andre 的链接(顶部)。
  • @Gustav,是的,这似乎是因为password 实际上不是访问 RW,但看起来像 DB 引擎 RW。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多