【问题标题】:MySQL SELECT * FROM 'table' syntax error 1064MySQL SELECT * FROM 'table' 语法错误 1064
【发布时间】:2014-06-06 16:53:09
【问题描述】:

我知道这应该是一个非常简单的解决方法,但我就是找不到语法错误。我正在使用一个框架,它将? 字符替换为我传递给它的值,所以"?" % "mytable" -> "'mytable'",很简单吧?

我正在发送字符串

"select * from ? limit ?;" % ("assays", 10)

我收到语法错误:

"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 ''assays' limit 10' at line 1"

我觉得我错过了一些非常简单的东西。

感谢您的帮助。

【问题讨论】:

  • @juergend 它传入"assays" 到第一个?10 到第二个?

标签: mysql sql select


【解决方案1】:

您不能用您的框架替换表名或列名 - 只能是值。查询编译为

select * from 'assays' limit 10

但是引号是错误的。删除它们或使用反引号。但我猜框架会自动执行此操作。

【讨论】:

    【解决方案2】:

    看起来您的框架将“分析”转换为“分析”并将其转发到 mysql。由于语法错误,它会发送 mysql 如下:

    从“测定”限制 1 中选择 *;

    如果你在mysql上测试,你会得到同样的错误:

    mysql>select * from 'test1' limit 1; ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“test1”限制 1 附近使用正确的语法 root@localhost [测试]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-17
      • 2016-03-10
      • 2015-04-25
      • 1970-01-01
      • 1970-01-01
      • 2017-05-06
      • 2018-03-05
      • 2014-01-22
      相关资源
      最近更新 更多