下面的代码有什么问题吗?
字符串sql =“从REGCUSTOMERS中选择用户名、密码”+“其中用户名=?和密码= ?";
我试图从REGCUSTOMERS表的用户名和密码列获取数据。
Eclipse错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法出现了错误;请检查与MySQL服务器版本对应的手册,以获得正确的语法以使用near '=?密码= ?‘在第1行
private boolean isAuthenticated(String userid, String password) {
// JDBC logic to verify from database.
try {
Class.forName(driverName);
Connection conn = null;
PreparedStatement st = null;
String sql = "SELECT username, password FROM REGCUSTOMERS" + "WHERE username = ? AND password = ?";
conn = DriverManager.getConnection(databaseURL, USERNAME, PASSWORD);
st = conn.prepareStatement(sql);
ResultSet rs = st.executeQuery(sql);
if (rs.getString("username") != userid && rs.getString("password") != password) {
return false;
}
rs.close();
st.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
return true;
}发布于 2013-01-29 16:37:03
在REGCUSTOMERS和WHERE之间没有空间。添加空格,您应该会很好:
String sql = "SELECT username, password FROM REGCUSTOMERS " + "WHERE username = ? AND password = ?";发布于 2013-01-29 16:37:19
本部分:
... FROM REGCUSTOMERS" + "WHERE username ...将导致以下SQL:
FROM REGCUSTOMERSWHERE当然,这是错误的。
+在那里没有意义,但如果你想要它,你至少需要一个空间在一边
"... FROM REGCUSTOMERS " + "WHERE username ..."https://stackoverflow.com/questions/14587583
复制相似问题