MySQL SELECT * FROM' table'语法错误1064

时间:2014-06-06 16:53:10

标签: mysql sql select

我知道这应该是一个非常简单的修复方法,但我无法找到语法错​​误。我使用的框架将?字符替换为我传递给它的值,因此"?" % "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"

我觉得我错过了很简单的事情。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

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

select * from 'assays' limit 10

但报价错了。删除它们或使用反引号。但我猜这个框架会自动完成。

答案 1 :(得分:0)

看起来您的框架转换为"分析"进行检测'并将其转发给mysql。通过语法错误,它将发送mysql,如:

选择*来自'分析'限制1;

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

mysql>从' test1'中选择*限制1; 错误1064(42000):您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在#test;' test1'附近使用正确的语法。限制1'在第1行 root @ localhost [test]