java中的mysql语法错误

时间:2014-01-18 16:41:29

标签: java mysql sql eclipse

我不喜欢'明白为什么eclipse告诉我这个查询的错误:

ResultSet rs = st.executeQuery("select * from '"+ value3+ "' where Name='" + value1 + "' and Password='"+ value2 + "'");

错误:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 ''f' where Name='f' and Password='f'' at line 1

1 个答案:

答案 0 :(得分:3)

1)试试这个。

ResultSet rs = st.executeQuery("select * from `" + value3 + "` where Name='" +
               value1 + "' and Password='"+ value2 + "'");

见这里:
MySQL Identifiers

标识符引用字符是MySQL中的反引号(“`”)。

2)另外,因为你没有使用PreparedStatement,如果你的名字或者是 密码包含'您将遇到问题。你的代码很脆弱 到SQL注入。

另见:
PreparedStatement
SQL injection