mysql - asp 命令对象在参数(包括编码)上执行错误

标签 mysql sql asp-classic command-objects

我正在使用命令对象运行查询,但执行查询时出现意外错误,我需要一些帮助。

相同的代码似乎仅在上面的几行中起作用,并且似乎仅在我将原始数据库表替换为 -dev 复制表后才出现。

代码如下:

sql = "SELECT blah, blah... " &_
        "FROM tracker p " &_
        "LEFT JOIN ... " &_
        "LEFT JOIN ... " &_
        "WHERE p.id = ? "
Dim cmdObj : set cmdObj = server.CreateObject("ADODB.Command")
cmdObj.ActiveConnection = conn
cmdObj.CommandText = sql
cmdObj.Parameters(0) = sID
Set rs = cmdObj.execute()

运行良好,我存储了一些结果。 然后,我使用相同的参数对下一行运行另一个查询:

sql = "SELECT * FROM table-dev p WHERE p.id = ? "
cmdObj.CommandText = sql
cmdObj.Parameters(0) = sID
Set rs = cmdObj.execute()

产生错误:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[MySQL][ODBC 5.1 Driver][mysqld-5.0.95-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 '-dev p WHERE p.id = _latin1'21115'' at line 1

我希望有人能够指出正确的方向,为什么现在可能会显示并将编码扔给参数。我以前见过这种情况,并设法找到了解决方法,但我一辈子都不记得是如何解决的。

非常感谢所有帮助。 非常感谢, 新山

最佳答案

看起来关键字table正在混淆查询引擎。只需将标识符括在反引号中即可使其明确:

SELECT * FROM `table-dev` p WHERE p.id = ?

关于mysql - asp 命令对象在参数(包括编码)上执行错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32353206/

相关文章:

asp-classic - Request.Querystring(variablevalue) 可能吗?

html - 使用经典 ASP 替换 HTML 中的文本

asp-classic - 如何根据区域设置 ID 转换货币

mysql - Python 3.4 的 MySql 模块可以与 3.5 一起使用吗?

Mysql查询: between a number range when numbers have hyphens

mysql - 将数据从 Redshift 复制到 MySQL/PSQL

mysql - 表格行或列

sql - 减少 SQL 中的行数

mysql - 需要帮助来定义一个查询,我试图从 3 个不同的表中获取数据

mysql - ERROR 1114 表已满