【发布时间】:2016-07-03 12:45:19
【问题描述】:
我在准备好的语句中遇到 SQL 代码语法错误。我已经阅读了网站上的其他答案,但我无法解决这个问题。我的代码如下
private boolean validate_login(String username,String password) {
try{
Class.forName("com.mysql.jdbc.Driver"); // MySQL database connection
String url = "jdbc:mysql://localhost/db_webstore";
String user = "root";
String pw = "Password";
String SQL = "select * from tbl-users where Tbl-UsersUserName=? and Tbl-UsersPassword=?";
Connection conn = DriverManager.getConnection(url, user, pw);
PreparedStatement pst;
pst = conn.prepareStatement(SQL);
pst.setString(1, username);
pst.setString(2, password);
ResultSet rs = pst.executeQuery();
if(rs.next())
return true;
else
return false;
}
catch(Exception e){
e.printStackTrace();
return false;
}
}
报错信息如下
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法,以便在 '-users 附近使用 Tbl-Users 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在 '-users where Tbl-Users
附近使用的正确语法
谁能给点建议?提前致谢
【问题讨论】:
-
我们可以有 tbl-users 结构吗?
-
tbl-users 是有效的表名吗?
-
@anaspa 看起来无效:dev.mysql.com/doc/refman/5.7/en/identifiers.html
-
@richard-faint 这个问题已经为你解答了吗?如果是,您是否介意接受最有帮助的答案以将此问题标记为已解决(请参阅here)...谢谢
标签: java mysql prepared-statement