【问题标题】:(ASP) MS Access -> MySQL: Error in Select, where [..] strings(ASP) MS Access -> MySQL: 选择错误,其中 [..] 字符串
【发布时间】:2014-03-09 13:26:31
【问题描述】:

我在我的网站上使用了一个门户系统并大量修改了 ASP 代码。 由于网站正在增长,我想从 MS Acces 迁移到 MySQL。

现在,我认为我正在使用的门户(以及我输入的一些代码)与 MySQL 不兼容,因为当我切换到 MySQL 数据库时,出现以下错误。

用于 ODBC 驱动程序的 Microsoft OLE DB 提供程序错误“80040e14”

[MySQL][ODBC 5.1 Driver][mysqld-5.1.55-community]你有一个错误 你的 SQL 语法;检查与您的 MySQL 对应的手册 在 '[EzModuleID] 附近使用正确语法的服务器版本, [ModName] 来自 EzCore_Plugin 其中 IsModActive='1'' 在第 1 行

[网站]\WWWROOT\BOXX\INCLUDES../../includes/include.asp,第 3736 行

关于这一行的 SQL 字符串如下:

Select [EzModuleID], [ModName] From EzCore_Plugin Where [IsModActive] = 1;

我是 MySQL 新手,我不知道为什么会出现错误。 我已经尝试了 1 左右的引用,删除 [],删除空格.. 我认为当我弄清楚为什么会导致错误时,我可以继续修改其余部分以使网站在 mysql 上运行。

【问题讨论】:

  • 如此简单的解决方案.. 谢谢。 :) 我试图更改所有代码以适应 mysql。我不明白的错误是下一个:>ADODB.Recordset 错误'800a0cc1'> >在与请求的名称或序号相对应的集合中找不到项目。 > >/includes/custom-header.asp, line 399 这个错误没有出现在访问权限中,为什么MySQL找不到? > 如果 rs("pollvoted.memberid") = rs("groupmembers.memberid") 那么
  • 我会尝试类似Select pollvoted.memberid as memberid1, groupmembers.memberid as memberid2, ...,然后使用rs("memberid1") 等。或者通过命令行或管理工具运行查询,查看 MySQL 为列分配的名称在输出中
  • 出于兴趣,您为什么选择 MySQL 而不是 SQL Server Express 版本。我并不是要推荐一个数据库而不是另一个,但如果您一直在使用 Access,那么迁移到 SQL Server 可能需要更少的工作
  • MySQL 在我的虚拟主机上是免费的.. SQL 需要额外费用..

标签: mysql ms-access select asp-classic where


【解决方案1】:

去掉方括号

(我不妨将其发布为答案而不是评论)

【讨论】:

    【解决方案2】:

    在 MySQL 中,列名和表名可以使用反引号字符 ` 进行转义,或者如果使用双引号启用 ANSI SQL 模式 "

    您的 WHERE 子句(根据错误消息)是 Where IsModActive='1'。如果 IsModActive 是文本列,则此方法有效。如果是数字,请去掉单引号。如果IsModActive 是布尔值,则将子句更改为Where IsModActive IS true

    见:is operator

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-12
      • 2018-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-25
      • 1970-01-01
      相关资源
      最近更新 更多